如何在列表视图中获取文本字段的值? (扑)

How to get a value of a textfield in a listview? (Flutter)

我有一个显示一些文本字段的列表视图构建器(项目的数量不固定,总是可变的)。有一个按钮委托来获取此文本字段的所有值。我该怎么做?

您必须将数据存储在包含 ListView 的有状态小部件中。

例如,您的数据可以是一个简单的列表,每个列表包含一项 TextField

使用 TextFieldonChanged 回调在用户编辑字段时更新数据。

首先像这样定义一个List List<TextEditingController> textFieldControllers=[]; 然后像这样遍历用于在 List.builder 中创建小部件的列表。

 for (var i = 0; i < typesItem.length; i++) {
  textFieldControllers.add(TextEditingController());
}

其中 typesItem 是用于创建 Listbuilder 小部件的列表项,以便与您的小部件保持相同的长度 dynamically.You 可以 运行 您的 initState 上的此代码方法 然后转到你的 List.builder 小部件并像这样初始化你的控制器。

 textFieldControllers[index] =  TextEditingController() ;

并像这样在 return 方法中设置您的 TextField 控制器

textFieldControllers[index]

因此,您可以使用

获得所有价值
  textFieldControllers[index].text;

您可以根据需要进行操作以适应您的情况