请教个问题,关于课程中ListView中的一些问题

老师好:想请教一个问题,关于课程中ListView中,如果要做成动态color应该怎样做呢?就是我的是订单列表,然后有2~3中订单类型,我想把图标直接做成跟订单类型一样的。

你说的是课时3-8吗?

在 Flutter 里面要实现组件属性的动态改变是很简单的,只要根据你的业务数据来确定属性值就行。比如这里你可以根据后端返回的订单数据的类型来选择 ListTileleading 图标的 color 属性即可。

比如下面的代码里给 theater 增加了 type 属性,生成列表的时候根据 type 值来决定图标颜色值。

file: lib/pages/layout/list_view.dart
line: 52

...

@override
  Widget build(BuildContext context) {
    final items = theaters
        .map<Widget>((theater) => ListTile(
              title: Text(
                theater['title'],
                style: TextStyle(fontWeight: FontWeight.w500, fontSize: 20),
              ),
              subtitle: Text(theater['subtitle']),
              leading: Icon(
                Icons.theaters,
                color: theater['type'] == 'imax'
                    ? Colors.green[500]
                    : Colors.blue[500],
              ),
            ))
        .toList();

...

另外下次提问可以给出具体的课时或者参考代码里的具体文件和行数,这样方便老师准确定位问题。

1赞

谢谢老师