我有一個顯示卡片的串列視圖,但是每當我添加新卡片時,所有卡片的標題都會更新為新標題,但我只需要更改當前添加的卡片
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 的新卡片后,我的卡片看起來如何的螢屏截圖

uj5u.com熱心網友回復:
您正在使用單個TextEditingController值來填充ListView,因此 listview 子項正在獲取更新值而不是創建新專案。
final taskName = TextEditingController();
您可以做什么,創建一個字串串列并將其提供給孩子。
List<String> items = []; // on state class
....
// add data
onPressed: () {
items.add(taskName.text.toString());
....
},
......
/// populate listView
return TodoContainer(
cardTitle: items[index],
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/420282.html
標籤:
