Flutter TextEditingController 设置默认值

9 min read

Flutter 中的 TextEditingController 没有默认值。在使用 TextEditingController 时,必须创建一个新的实例并将其传递给 TextField 或 TextFormField 等组件。

例如,要将 TextEditingController 传递给 TextField ,可以这样写:

final myController = TextEditingController();
...
TextField(
  controller: myController,
  ...
)

如果需要,可以在创建 TextEditingController 实例时将初始值作为参数传入。

final myController = TextEditingController(text: "Default Text");

源码如下:

class TextEditingController extends ValueNotifier<TextEditingValue> {
  /// Creates a controller for an editable text field.
  ///
  /// This constructor treats a null [text] argument as if it were the empty
  /// string.
  TextEditingController({ String? text })
    : super(text == null ? TextEditingValue.empty : TextEditingValue(text: text));