多次使用TextEditingController

时间:2019-10-13 00:09:01

标签: flutter dart

是否必须为每个TextEditingController创建一个以上的TextField 例子

var oneController = TextEditingController();
var twoController = TextEditingController();

然后

TextField(
   controller: oneController,
   decoration: new InputDecoration(labelText: "add type *income"),
),
TextField(
   controller: twoController,
   decoration: new InputDecoration(labelText: "Enter a number"),
   keyboardType: TextInputType.number,
),

还是只有一种使用方法?

2 个答案:

答案 0 :(得分:1)

  

我必须为每个TextEditingController创建一个以上的TextField吗?

是的。控制器允许您控制和访问字段的当前状态,

在这种情况下,它可以让您知道当前的用户输入是什么,因此您可以读取或更改该值,还可以选择或查看用户选择的内容。它还可以为每个字段提供一个初始值。

如果使用相同的控制器,则两个TextField中会同时发生相同的事情,例如,当用户在一个字段上键入字母时,它也会显示在另一个字段上。

如果您有一个表单或太多字段,则可能要使用其他解决方案,例如TextFormField,也可以在没有控制器的情况下使用这些解决方案来一次验证和保存用户输入内容,这些内容可以一次用于Form小部件。

有关TextEditingController on the docs的更多信息。

答案 1 :(得分:1)

您可以使用类似的东西。然后在任何你想要的地方简单地像数组一样使用它们。

List<TextEditingController> myController =
      List.generate(5, (i) => TextEditingController());