我在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/