微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter TextField 自动对焦不适用于 SlideTransition

如何解决Flutter TextField 自动对焦不适用于 SlideTransition

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

示例:
自动对焦适用于:

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

自动对焦不适用于(此 article 中的 EnterExitRoute 类):

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

如何在使用动画到 SecondPage 时让 TextField 自动聚焦?

解决方法

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。