我的新卡的标题名称将所有其他卡的名称更改为新的标题名称
Title name of my new card changes all the other cards' name to the new title name
我有一个显示卡片的列表视图,但每当我添加一张新卡片时,所有卡片的标题都会更新为新标题,但我只需要更改当前添加的卡片
final taskName = TextEditingController();
TextField(
controller: taskName,
decoration: const InputDecoration(hintText: 'Task Name'),
),
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
ElevatedButton(
onPressed: () {
counter++;
Navigator.pop(context);
},
child: const Text(
'Add',
style: TextStyle(fontSize: 15),
),
),
Expanded(
child: ListView.builder(
itemCount: counter,
itemBuilder: (BuildContext context, index) {
return TodoContainer(
cardTitle: taskName.text.toString(),
);
}),
)
显示我的卡片在添加名称为 TODO 的新卡片后的样子的屏幕截图
您正在使用单个 TextEditingController
值来填充 ListView
,因此列表视图 children 正在获取更新值而不是创建新项目。
final taskName = TextEditingController();
您可以做什么,创建一个字符串列表并将其提供给 children。
List<String> items = []; // on state class
....
// add data
onPressed: () {
items.add(taskName.text.toString());
....
},
......
/// populate listView
return TodoContainer(
cardTitle: items[index],
);
我有一个显示卡片的列表视图,但每当我添加一张新卡片时,所有卡片的标题都会更新为新标题,但我只需要更改当前添加的卡片
final taskName = TextEditingController();
TextField(
controller: taskName,
decoration: const InputDecoration(hintText: 'Task Name'),
),
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
ElevatedButton(
onPressed: () {
counter++;
Navigator.pop(context);
},
child: const Text(
'Add',
style: TextStyle(fontSize: 15),
),
),
Expanded(
child: ListView.builder(
itemCount: counter,
itemBuilder: (BuildContext context, index) {
return TodoContainer(
cardTitle: taskName.text.toString(),
);
}),
)
显示我的卡片在添加名称为 TODO 的新卡片后的样子的屏幕截图
您正在使用单个 TextEditingController
值来填充 ListView
,因此列表视图 children 正在获取更新值而不是创建新项目。
final taskName = TextEditingController();
您可以做什么,创建一个字符串列表并将其提供给 children。
List<String> items = []; // on state class
....
// add data
onPressed: () {
items.add(taskName.text.toString());
....
},
......
/// populate listView
return TodoContainer(
cardTitle: items[index],
);