我有一个屏幕,只有一个TextField(自动对焦:true)和一个FlatButton。当我不使用SlideTransition时,TextField在屏幕被访问时正确地获得焦点。然而,当我简单地改变路线,使用SlideTransition为第二页提供一个漂亮的动画时,TextField不会自动对焦。
示例:
自动对焦适用于:
Navigator.push(context, MaterialPageRoute(builder: (context) => SecondPage()),);
自动对焦不适用于(本文中的EnterExitRoute类):
Navigator.push(context,EnterExitRoute(exitPage: FirstPage(), enterPage: SecondPage()));
如何让TextField自动对焦时使用动画到SecondPage?
我终于得到了这个工作使用FocusNode。在发布之前,我尝试过FocusNode。使它工作的不同之处在于在initState中没有像示例所示的这些行:
myFocusNode = FocusNode();
FocusScope.of(context).requestFocus(myFocusNode);
initState没有被调用。我正在使用StatefulWidget。我不确定为什么initState没有被调用。也许有人能给个理由?