颤振:键盘自动显示

 收藏

我正在浏览Flutter应用程序中的下一页。

在下一页上,有一些用户可以在其中输入文本的表格。

final _form2Key = GlobalKey<FormState>();


  Padding(
                        padding: EdgeInsets.only(top: 8.0),
                        child: Container(
                          width: screenWidth / 1.1,
                          height: screenHeight / 5.5,
                          child: Form(
                            key: _form2Key,
                            autovalidate: true,
                            child: TextFormField(
                              autofocus: true,
                              validator: (val) {
                                if (val.trim().length < 3 || val.isEmpty) {
                                  return "Too short";
                                } else if (val.trim().length > 200) {
                                  return "Too long";
                                } else {
                                  return null;
                                }
                              },
                              onSaved: (val) => description = val,
                              decoration: InputDecoration(
                                border: OutlineInputBorder(),
                                filled: true,
                                fillColor: Colors.white,
                                labelText: "",
                                labelStyle: TextStyle(fontSize: 15.0),
                                hintText: " ",
                              ),
                            ),
                          ),
                        ),
                      ),

一切正常,但导航到该新页面后,键盘会自动显示并集中在文本字段上。

是否可以避免键盘弹出而仅在用户按下表单时才显示键盘?

提前致谢!

回复
  • 需要ai 回复

    您的键盘自动弹出是因为您将自动对焦设置为true,请修改为false或删除该属性以避免键盘自动弹出

    final _form2Key = GlobalKey<FormState>();
    
    
      Padding(
                            padding: EdgeInsets.only(top: 8.0),
                            child: Container(
                              width: screenWidth / 1.1,
                              height: screenHeight / 5.5,
                              child: Form(
                                key: _form2Key,
                                autovalidate: true,
                                child: TextFormField(
                                  autofocus: false, //modified
                                  validator: (val) {
                                    if (val.trim().length < 3 || val.isEmpty) {
                                      return "Too short";
                                    } else if (val.trim().length > 200) {
                                      return "Too long";
                                    } else {
                                      return null;
                                    }
                                  },
                                  onSaved: (val) => description = val,
                                  decoration: InputDecoration(
                                    border: OutlineInputBorder(),
                                    filled: true,
                                    fillColor: Colors.white,
                                    labelText: "",
                                    labelStyle: TextStyle(fontSize: 15.0),
                                    hintText: " ",
                                  ),
                                ),
                              ),
                            ),
                          ),