flutter - 如何回收清单指数?
问题描述
我有一个 ListViewBuilder 它将传播一个基于 firestore 数据库的可重用容器,它会提取一个单独的颜色列表,例如这个颜色列表来为可重用容器着色:
List<Color> colours = [
Color(0xFFFB5A50),
Color(0xFF26E29E),
Color(0xFFffc452),
Color(0xFF7773FB),
];
我的问题是,因为数据库中的列表可能超过 100 个。您将如何在不超出列表范围的情况下连续重用颜色列表?
解决方案
如果我理解正确,您可以使用运算符 %,例如:
@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 % 方法
推荐阅读
- reactjs - React 搜索和过滤:TypeError: setFilterFn is not a function
- python - 如何避免Qthread中的“无法为位于不同线程中的父级创建子级”?
- java - java中的int数组不会包含期望值
- ruby-on-rails - 未正确激活小数最大值的验证
- python - 由于奇怪的原因,auto-py-to-exe 失败
- json - 使用条件语句在 arm 模板输出中形成 SQL DB 连接字符串
- python - 使用散景具有不同颜色的节点
- c - 操作系统互斥体
- spring - 为集成测试/@SpringBootTest 提供 bean 时出现 BeanDefinitionOverrideException
- python - 使用额外的自定义方法创建一个列表,在 python 3.8 但不是 3.9 中出现错误