有什么办法可以改变前导 CircleAvatar 的背景颜色

Is there any way to alternate the backgroundColor of leading, CircleAvatar

我正在将 api 响应的数据显示到 ListView.builder,ListTile,我想改变 CircleAvatar 的背景颜色,假设 api 响应数据长度为 5,然后在第 1 和第 2 圈头像背景颜色将与第 4 和第 5 相同(如果有 3 种替代颜色)

 ListTile(
    leading:  CircleAvatar(
    radius: 25,
 backgroundColor:Colors.red

有什么想法可以帮忙吗?

试试这个:

int i = 0;

ListView(...

 Color c = Colors.red;

 if(i == 0) i++;
 else if(i == 1) {
   c = Colors.blue;
   i++;
 } else if(i == 2) {
   c = Colors.yellow;
   i = 0;
 }

 ListTile(
    leading:  CircleAvatar(
    radius: 25,
 backgroundColor: c

1,2 和 4,5 的交替逻辑让我有点困惑,但据我了解,您可以使用构建器索引来更改颜色。像这样:

ListView.builder(
itemCount: dummyList.length,
itemBuilder: (context, index) => ListTile(
    leading:  CircleAvatar(
        radius: 25,
        backgroundColor: [1,2,4,5].contains(index) ? Colors.red : Colors.blue
        ),
    ),
); 

您可能需要根据需要更改逻辑。例如,只有最后两个的颜色是:

[dummyList.length - 1, dummyList.length].contains(index) ? Colors.red : Colors.blue

或者偶数为

(index % 2) == 0 ? Colors.red : Colors.blue

试试下面的代码,希望它能帮助你改变值,比如你需要的 0 和 1 以及颜色:

//declare one varibale 
var lead;

backgroundColor: (lead == '0')? Colors.blue: (lead == '1')? Colors.red: Colors.green,