首页 > 解决方案 > Flutter TextField 自动对焦不适用于 SlideTransition

问题描述

我有一个带有单个 TextField(自动对焦:true)和一个 FlatButton 的屏幕。当我不使用 SlideTransition 时,TextField 会在访问屏幕时正确获得焦点。但是,当我只是将路线更改为使用 SlideTransition 制作漂亮的动画到第二页时,TextField 不会自动聚焦。

示例:
自动对焦适用于:

Navigator.push(context, MaterialPageRoute(builder: (context) => SecondPage()),);

自动对焦不适用于(本文中的 EnterExitRoute 类):

Navigator.push(context,EnterExitRoute(exitPage: FirstPage(), enterPage: SecondPage()));

使用 SecondPage 的动画时,如何让 TextField 自动对焦?

标签: animationtextfieldnavigatorautofocus

解决方案


我终于使用 FocusNode 完成了这项工作。我在发布之前尝试过 FocusNode。让它工作的不同之处在于 initState 中没有这些行,如示例所示:

  myFocusNode = FocusNode();
  FocusScope.of(context).requestFocus(myFocusNode);

initState 没有被调用。我正在使用 StatefulWidget。我不确定为什么 initState 没有被调用。也许有人可以提供一个理由?


推荐阅读