Автофокус 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()));

Как я могу заставить TextField автоматически фокусироваться при использовании анимации на SecondPage?


person BrianDev    schedule 31.01.2021    source источник


Ответы (1)


Наконец-то я заработал с помощью FocusNode. Я пробовал FocusNode перед публикацией. Разница, которая заставила его работать, заключалась в том, что внутри initState не было этих строк, как показано в примерах:

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

initState не вызывался. Я использую StatefulWidget. Я не уверен, почему initState не вызывался. Может быть, кто-то мог указать причину?

person BrianDev    schedule 31.01.2021