例如,我希望用户喜欢他们喜欢的东西,但缺点是,当我更改图标以表明他们单击按钮时,所有幻灯片的图标也会更改。如何个性化每张幻灯片,以便在UI上执行if / else语句时,它只会影响该特定的幻灯片。
答案 0 :(得分:0)
不看实际代码很难帮忙,但要回答您的问题,您可以尝试在Firestore表中添加一个具有selected
值的boolean
列,以便在单击卡时可以将该项的列值更新为true
并刷新状态,以便仅更改带有true
的卡,而其余的卡保持不变,其中selected
为false
。 / p>
伪代码示例:
return FutureBuilder(
future: getDataFromFirestore(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return Column(
children: List.generate(snapshot.data.length, (itemIndex) {
Macro macro = snapshot.data[itemIndex];
return Card(
child: ListTile(
title: Text(snapshot.data["title"]),
subtitle: Text(snapshot.data["subtitle"]),
trailing: IconButton(
icon: snapshot.data["selected"] ? Icons.check : Icons.add //If card is selected, display checked icon else display add icon
onPressed: () async {setState(() {}); //Refresh state}