dart - Flutter TextFormField 聚焦时重新加载当前屏幕

我有一个 TextFormField,当我点击它输入文本时它会重新加载当前屏幕。当我点击表单域时,软件键盘会在整个屏幕重新加载并再次呈现所有小部件之前短暂显示。我正在 Android 设备上运行该应用程序。

Container(
        child: Form(
          key: _formKey,
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: <Widget>[
              TextFormField(
                validator: (value) {
                  if (value.isEmpty) {
                    return 'Your input cannot be empty';
                  }
                },
              ),
              Padding(
                padding: const EdgeInsets.symmetric(vertical: 16.0),
                child: RaisedButton(
                  onPressed: () {

                    if (_formKey.currentState.validate()) {
                      print('validated');
                    }
                  },
                  child: Text('Save'),
                ),
              ),
            ],
          ),
        ),
        margin: EdgeInsets.only(top:8.0),
  ),

最佳答案

问题是当您单击该字段时,TextFormField 的 Controller 正在重建,这就是您的问题的原因。

所以为了解决这个问题,您是否尝试创建一个 Statefull 小部件,然后在该小部件的状态中创建一个 TextEditingController 并将其作为参数传递给 TextFormField ?

https://stackoverflow.com/questions/51699543/

相关文章:

android - Flutter:在 Android Studio 中打开 android 模块被

flutter - Flutter 目录不是 GitHub 项目的克隆

dart - 错误状态 : Mock method was not called within `w

mobile - 滚动时如何从 SliverAppBar 淡入/淡出小部件?

dart - Flutter中是否有可能 "extend"ThemeData

ios - 如何在键盘外观上为 Flutter 布局设置动画

flutter - 在 Flutter PageView 中切换页面时丢失小部件状态

firebase - 离线使用。 Flutter Hamilton 应用架构。写入节点并期望云函数更

android - flutter 相机预览不随手机方向旋转

flutter - 在 FutureBuilder 中设置提供者值