【发布时间】:2018-06-11 14:33:34
【问题描述】:
bool selected = false;
new Card(
shape: selected
? new RoundedRectangleBorder(
side: new BorderSide(color: Colors.blue, width: 2.0),
borderRadius: BorderRadius.circular(4.0))
: new RoundedRectangleBorder(
side: new BorderSide(color: Colors.white, width: 2.0),
borderRadius: BorderRadius.circular(4.0)),
child: new Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
new Padding(
padding: new EdgeInsets.all(8.0),
child: new Text("${ticketGroups[i]['ticket_name']}",
style: const TextStyle(
fontSize: 15.0, fontFamily: 'Poppins')),
),
new Padding(
padding: new EdgeInsets.all(8.0),
child: new Text(ticketGroups[i]["used"].toString(),
style: const TextStyle(
fontSize: 15.0, fontFamily: 'Poppins')),
),
new Checkbox(
value: selected,
onChanged: (value) {
setState(() {
selected = !selected;
});
})
我希望只能勾选一张卡片,但是只要我勾选任何一张卡片,所有卡片都会被勾选。 卡片也是动态创建的,会不会是这个问题造成的?
【问题讨论】:
-
每一行都需要一个不同的
selected值。从您的代码中不清楚您是如何处理的。 -
我怎样才能为每一行做一个不同的选择值?,上面列出了实现选择的所有功能,就是字面意思。
-
请添加显示如何创建行的代码。从您提供的代码来看,这有点困难。您还可以删除所有与布局相关的代码,以便更轻松地了解代码的意图。无论如何,布局与手头的问题无关。