FlutterのListViewで選択した項目の色を変えたいです。
調べたコードのコピペで書いたのですが、上手くいきません。
onTapで_selectedIndex =indexにし、
そのタイルのselectedを_selectedIndex == indexでtrueにする、というコードと理解しているのですが、色が変わりません。
selected:を直接trueにすると全タイルが選択色に変わることは確認できました。
print("$_selectedIndex"+"$index");で、数字が一致することも確認しています。
どこがおかしいのか、指摘いただけると幸いです。
Dart/Flutter
class RecipeAdd extends StatefulWidget { const RecipeAdd({Key? key}) : super(key: key); State<RecipeAdd> createState() => _RecipeAddState(); } var _list =["a","b","c"]; String _addMenu =''; class _RecipeAddState extends State<RecipeAdd> { Widget build(BuildContext context) { var addSite = ModalRoute.of(context)?.settings.arguments; int _selectedIndex = -1; return Scaffold( body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ SizedBox( height: 250, width: 300, child: ListView.builder( itemCount: _list.length, itemBuilder: (BuildContext context, int index) { return ListTile( title: Text(_list[index]), onTap: (){ setState(() { _addMenu = _list[index]; _selectedIndex = index; print("$_selectedIndex"+"$index"); }); }, selected: _selectedIndex == index, selectedTileColor: Colors.pink.withOpacity(0.2), ); }, ), ), ], ), ), ); } }
まだ回答がついていません
会員登録して回答してみよう