Ama*_*wat 3 dart flutter flutter-getx
我想在单击图块时更改 ListTile 文本的颜色,我该怎么做,而且颜色也应该只更改特定选定图块的颜色。我的方法如下:
ListView.builder(
itemCount: _antigen.plantAntigens.length,
itemBuilder: (BuildContext cntxt, int index) {
return ListTile(
title: Text(
_antigen.plantAntigens[index],
style: TextStyle(
color: controller.isSelected ? Colors.red : Colors.black87),
),
onTap: () {
controller.toogle();
});
},
),
Run Code Online (Sandbox Code Playgroud)
控制器的代码如下:
bool isSelected = false.obs;
toogle() {
isSelected = !isSelected;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
只需在控制器中创建一个列表来存储所选索引
var plantAntigensSelected = [].obs;
toogle(int index) {
if (plantAntigensSelected.contains(index)) {
plantAntigensSelected.remove(index);
} else {
plantAntigensSelected.add(index);
}
}
Run Code Online (Sandbox Code Playgroud)
你的 ListView 像这样
ListView.builder(
itemCount: plantAntigens.length,
itemBuilder: (BuildContext cntxt, int index) {
return ListTile(
title: Obx(
() => Text(
plantAntigens[index],
style: TextStyle(
color:
controller.plantAntigensSelected.contains(index)
? Colors.red
: Colors.black87),
),
),
onTap: () {
controller.toogle(index);
});
},
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4416 次 |
最近记录: |