FlutterのListViewで選択した項目の色を変えたいです。
調べたコードのコピペで書いたのですが、上手くいきません。
onTapで_selectedIndex =indexにし、
そのタイルのselectedを_selectedIndex == indexでtrueにする、というコードと理解しているのですが、色が変わりません。
selected:を直接trueにすると全タイルが選択色に変わることは確認できました。
print("$_selectedIndex"+"$index");で、数字が一致することも確認しています。
どこがおかしいのか、指摘いただけると幸いです。
Dart/Flutter
1class RecipeAdd extends StatefulWidget { 2 const RecipeAdd({Key? key}) : super(key: key); 3 4 State<RecipeAdd> createState() => _RecipeAddState(); 5 6} 7var _list =["a","b","c"]; 8String _addMenu =''; 9 10class _RecipeAddState extends State<RecipeAdd> { 11 12 Widget build(BuildContext context) { 13 var addSite = ModalRoute.of(context)?.settings.arguments; 14 int _selectedIndex = -1; 15 return Scaffold( 16 body: Center( 17 child: Column( 18 mainAxisAlignment: MainAxisAlignment.spaceEvenly, 19 children: [ 20 SizedBox( height: 250, width: 300, 21 child: ListView.builder( 22 itemCount: _list.length, 23 itemBuilder: (BuildContext context, int index) { 24 return ListTile( 25 title: Text(_list[index]), 26 onTap: (){ 27 setState(() { 28 _addMenu = _list[index]; 29 _selectedIndex = index; 30 print("$_selectedIndex"+"$index"); 31 }); 32 }, 33 selected: _selectedIndex == index, 34 selectedTileColor: Colors.pink.withOpacity(0.2), 35 ); 36 }, 37 ), 38 ), 39 ], 40 ), 41 ), 42 ); 43 } 44}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/23 01:39