flutter - 数组中的颜色
问题描述
尝试在 List.generate 中使用我的数组中的颜色,我只有 4 种颜色,每个新颜色都必须使用数组中第一个颜色的颜色:
var colorList = [Color(0xFF0057ff42), Color(0xFFffad3142), Color(0xFF2ed1b442), Color(0xFF00c6ff42)];
GridView.count(
crossAxisCount: 2,
shrinkWrap: true,
physics: ScrollPhysics(),
scrollDirection: Axis.vertical,
children: List.generate(10, (index) {
return Container(
margin: EdgeInsets.all(15.0),
child: Stack(
children: < Widget > [
Container(
margin: EdgeInsets.only(top: 50),
alignment: Alignment.center,
padding: EdgeInsets.only(top: 35),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Colors.white,
boxShadow: [
BoxShadow(color: Colors.black.withOpacity(0.2), offset: Offset(0, 3), blurRadius: 7),
],
),
child: Text(
'Игры',
textAlign: TextAlign.center,
style: TextStyle(
color: const Color(0xFF4F4F4F),
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
),
Positioned(
top: 0,
left: 0.0,
right: 0.0,
child: MaterialButton(
onPressed: null,
textColor: Colors.white,
disabledColor: colorList[index],
child: Icon(
Icons.camera_alt,
size: 40,
),
padding: EdgeInsets.all(30),
shape: CircleBorder(),
)
)
]
)
);
})
),
我得到错误:
“RangeError(索引):无效值:不在包含范围 0..3:4 内”
我知道这是因为颜色的数量,我只有 4 种,但在我的列表中有 10 种。你还能怎么做呢?
解决方案
您可以像这样使用模运算符 (%)重复颜色。
disabledColor: colorList[index % colorList.length],
推荐阅读
- php - 将 ACF 文件插入 CSS 伪元素
- javascript - 不要从 URL 中获取 GET 参数
- pandas - 哪个更好,多个文件的多个请求或单个文件的单个请求 S3?
- python - python随机选择什么都不选择
- firebase - 使用rest api在firebase实时数据库规则中授权uid
- node.js - 如何从控制器中提取成功和错误响应
- powershell - 在不编辑主机文件的情况下将 netbios 名称解析为 ip 地址
- c# - 如何在 C# 中为 OrderBy 有条件地设置 LINQ OrderByDescending 中的列?
- javascript - 带有破折号的 JS createElement 参数
- python - 如何在 Python 中将范围分数转换为字母等级