在ListView.builder上交替背景颜色

时间:2019-02-06 13:09:46

标签: dart flutter widget

我有一个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"),
          ],),
      ),

或类似的东西?

3 个答案:

答案 0 :(得分:2)

您可以使用提供给项目构建器的index来设置颜色,如果要使用ListTile,可以通过将其包装在{{1 }}:

Container

答案 1 :(得分:1)

知道了。

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

答案 2 :(得分:1)

我这样做的方法是设置列表,然后创建一个返回类型为Color且传入的参数为索引的方法。

Color selectedColour(int position) {
  Color c;
  if (position % 3 == 0) c = Colours.cTLightBlue;
  if (position % 3 == 1) c = Colours.cTMidBlue;
  if (position % 3 == 2) c = Colours.cTDarkBlue;
  return c;
}

在“颜色”命名参数调用selectedColour中,您将获得所需颜色的替代颜色。