【发布时间】:2018-06-19 04:52:08
【问题描述】:
只要下拉字段发生变化,甚至当您单击下拉字段时,文本字段的值都会重置。 这是代码..
list.forEach((i) {
var textEditingController = new TextEditingController();
textEditingControllers.add(textEditingController);
textFields.add(
new Column(
children:[
new DropdownButton<String>(
value: _selection[i],
items: _items.map((String item){
return DropdownMenuItem<String>(
value:item,
child: new Text(item),
);
}).toList(),
onChanged: (s){
setState(() {
_selection[i]=s;
});
},
),
new TextField(
autocorrect: false,
controller: textEditingController,
textAlign: TextAlign.center,
keyboardType: TextInputType.number,
decoration: new InputDecoration(hintText: "credit $i",hintStyle: new TextStyle(color: Colors.deepOrangeAccent[100])),
)
]
)
);
return textFields;
});
我做错了什么吗?
【问题讨论】:
-
我觉得最好把所有代码都贴出来
-
我更新了问题
-
我认为您需要保留
TextEditingController实例,而不是在每个build()调用中重新创建它们 -
也试过了,不行
-
@GünterZöchbauer 你是对的,我必须保留 TextEditingController 实例。我保留了列表,但没有保留所有实例。谢谢兄弟
标签: dart flutter flutter-layout