在ListView.builder上交替背景颜色

Kev*_*vin 3 widget dart flutter

我有一个列表ListView.builder生成ListTile的。我希望获得一种与典型列表一样的交替颜色。

有Flutter的官方方法吗?或者我坚持做类似的事情

ListView.builder(
...
  itemBuilder: (...) {
    return ListTile
      ..
      title: Container(
        decoration: BoxDecoration(color: Colors.grey),
          child: Column(children: <Widget>[
            Text("What should've been the title property"),
            Text("and its trailing"),
          ],),
      ),
Run Code Online (Sandbox Code Playgroud)

或类似的东西?

Her*_*tar 7

您可以使用index提供给项目构建器的来设置颜色,如果要使用ListTile,可以通过将其包装在中来轻松为其提供背景色Container

ListView.builder(
  itemBuilder: (BuildContext context, int index) {
    return Container(
      color: (index % 2 == 0) ? Colors.red : Colors.green,
      child: ListTile(
        title: ...
      ),
    );
  },
)
Run Code Online (Sandbox Code Playgroud)

  • 尝试将逻辑更改为“索引%10”,并使用“ switch”语句。 (2认同)
  • 小注意事项,但您可以使用“index.isEven”。 (2认同)

Kev*_*vin 3

知道了。

ListTile我可以使用 aCard来访问颜色属性,而不是使用。然后根据@pskink的建议,我可以使用索引来确定它是奇数还是偶数。

  • 您还可以将“ListTile”包装在“Container”中并设置其颜色。 (3认同)