flutter - 在 Flutter 中选择时更改 ListTile 的背景颜色

我在Flutter中做了一个ListView,但是现在这个ListView里面有一些ListTiles可以选择。选择后,我希望背景颜色更改为我选择的颜色。我不知道该怎么做。 在 the docs他们提到 ListTile 有一个属性 style。但是,当我尝试添加它时(如下面代码中的倒数第三行),这个 style 属性在下面有一条弯曲的红线,编译器告诉我 The named parameter 'style ' 没有定义

Widget _buildRow(String string){
  return new ListTile(
    title: new Text(string),
    onTap: () => setState(() => toggleSelection(string)),
    selected: selectedFriends.contains(string),
    style: new ListTileTheme(selectedColor: Colors.white,),
  );
}

最佳答案

截图:


简答:

ListTile(
  tileColor: isSelected ? Colors.blue : null, 
)

完整代码:

// You can also use `Map` but for the sake of simplicity I'm using two separate `List`.
final List<int> _list = List.generate(20, (i) => i);
final List<bool> _selected = List.generate(20, (i) => false); // Fill it with false initially
  
Widget build(BuildContext context) {
  return Scaffold(
    body: ListView.builder(
      itemBuilder: (_, i) {
        return ListTile(
          tileColor: _selected[i] ? Colors.blue : null, // If current item is selected show blue color
          title: Text('Item ${_list[i]}'),
          onTap: () => setState(() => _selected[i] = !_selected[i]), // Reverse bool value
        );
      },
    ),
  );
}

https://stackoverflow.com/questions/49331612/

相关文章:

regex - 如何在 Dart 中使用正则表达式?

dart - Flutter - 容器中的顶部对齐文本

flutter - 如何在 flutter 中获得唯一的设备ID?

google-maps - 如果可以使用 flutter 打开谷歌地图应用程序

android - 如何在 Flutter App 中处理 onPause/onResume?

dart - 如何格式化定位文本 block 的背景颜色?

dart - Flutter 中的文本字段验证

flutter - 如何在 flutter 小部件测试中捕获来自 future 的错误?

android - Flutter/Dart 静态变量丢失/不断重新初始化

listview - Flutter:SimpleDialog 中的 ListView