如何在颤动中使文本字段不聚焦?

yav*_*avg 0 flutter flutter-layout

在此处输入图片说明

我不知道这是否是正常的颤动行为,但是只有当您点击键盘“确定”按钮失去焦点时才会失去焦点,这很烦人。如果不这样做,光标将在文本字段中保持活动状态。

避免这种情况的最佳做法是什么?(在 gif 中它不是很受欢迎,但失去焦点的唯一方法是点击键盘上的“确定”按钮,否则无论您是否点击屏幕的其他区域,光标都将始终处于活动状态)

    Widget _searchBar() {
     return Container(
      child: TextField(
        textAlignVertical: TextAlignVertical.center,
        style: TextStyle(
          textBaseline: TextBaseline.alphabetic,
          color: _styles["gris_oscuro1"]["color"],
        ),
        onChanged: (value) {},
        decoration: InputDecoration(
          filled: true,
          fillColor: _styles["gris_claro"]["color"],
          alignLabelWithHint: true,
          hintText: "Buscar por código",
          hintStyle: TextStyle(color: _styles["gris_oscuro2"]["color"]),
          prefixIcon:
              Icon(Icons.search, color: _styles["gris_oscuro2"]["color"]),
          enabledBorder: OutlineInputBorder(
            borderRadius: BorderRadius.all(Radius.circular(40)),
            borderSide:
                BorderSide(color: _styles["gris_claro"]["color"], width: 1.0),
          ),
        ),
      ),
    );
    );


    Scaffold(
        key: _scaffoldKey,
        backgroundColor: _styles["fondo"]["bg"],
        drawer: MenuWidget(),
        body: SafeArea(
        child: _searchBar(),
        )
Run Code Online (Sandbox Code Playgroud)

小智 9

onTapOutside: ((event) {
              FocusScope.of(context).unfocus();
            }),
Run Code Online (Sandbox Code Playgroud)

将其添加到文本字段。


Yud*_*ngh 6

在此处输入图片说明

将您的整个页面包裹GestureDetector起来onTap并按如下方式修改其功能:

@override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () { //here
        FocusScope.of(context).unfocus();
        new TextEditingController().clear();
      },
      child: Container(
      ...
    );
  }
Run Code Online (Sandbox Code Playgroud)

  • 请注意...请勿创建新的“TextEditingController”对象,因为它们需要使用对象上可用的“dispose()”方法进行处理。 (2认同)