我遇到了一个问题:我有一个方法,它有几个TextEditingController实例,该方法返回一个小部件,表示一个对象.它通过列表呈现,这意味着这些控制器具有与列表长度一样多的实例.现在,在按钮的点击处理程序上,我希望从控制器获取每个小部件的所有值.我目前正在将它们保存在对象列表中.主要问题是,当我更新一些文本时,控制器值会更改,但它已经在列表中,所以它不会反映在对象中.有没有办法只在单击按钮时才获得这些值,而不需要将它们存储在对象列表中?以下是获得 idea 的代码.
ListView.builder(
controller: _deviceScroll,
itemCount: 6,
itemBuilder: (BuildContext context, int index) {
return Container(
child: editableAdress(), //Widget rendering
);
})
Widget editableAdress() {
TextEditingController _nameController =
TextEditingController(text: adress.adrName1);
TextEditingController _secondNameController =
TextEditingController(text: adress.adrName2);
//adding in the list
widget.addressesList.add(new Address(
adrName1: _nameController.text, adrName2: _secondNameController.text));
return Column(
children: [
Text('NAME', style: headingStyle),
const SizedBox(height: 10),
Column(
children: [
editableTextField(context, _nameController, 'Person 1 / Firma'),
const SizedBox(
height: 10,
),
editableTextField(context, _secondNameController, 'Person 2'),
],
),
],
);
}