首页 > 解决方案 > 如何回收清单指数?

问题描述

我有一个 ListViewBuilder 它将传播一个基于 firestore 数据库的可重用容器,它会提取一个单独的颜色列表,例如这个颜色列表来为可重用容器着色:

List<Color> colours = [
    Color(0xFFFB5A50),
    Color(0xFF26E29E),
    Color(0xFFffc452),
    Color(0xFF7773FB),
  ];

我的问题是,因为数据库中的列表可能超过 100 个。您将如何在不超出列表范围的情况下连续重用颜色列表?

标签: flutterdart

解决方案


如果我理解正确,您可以使用运算符 %,例如:

@override
Widget build(BuildContext context) {
  return Scaffold(
    body: ListView.separated(
      itemCount: 100,
      itemBuilder: (_, index) {
        return Container(
          height: 40,
          color: colours[index % colours.length],
        );
      },
      separatorBuilder: (_, index) => SizedBox(height: 8),
    ),
  );
}

有关此运算符的更多信息:dart operator % 方法


推荐阅读