如何解决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 举报,一经查实,本站将立刻删除。