Почему навигатор не работает в onSubmitted текстового поля в flutter?

#flutter

#flutter

Вопрос:

Это мой код:

 AppBar(
        actions: [
          IconButton(
            icon: Icon(Icons.search),
            onPressed: () => Navigator.push(
              context,
              MaterialPageRoute(
                builder: (context) => SearchScreen(
                  query: _query,
                ),
              ),
            ),
          ),
        ],
        title: Container(
          height: 40,
          decoration: BoxDecoration(
            color: kSecondaryColor.withOpacity(0.1),
            borderRadius: BorderRadius.circular(15),
          ),
          child: TextField(
            onSubmitted: (value) {
              print('HHi');
              _query.searchBy = value;
              Navigator.popAndPushNamed(context, '/ads');
              Navigator.push(
                context,
                MaterialPageRoute(
                  builder: (context) => SearchScreen(
                    query: _query,
                  ),
                ),
              );
            },
            decoration: InputDecoration(
                border: InputBorder.none,
                enabledBorder: InputBorder.none,
                focusedBorder: InputBorder.none,
                prefixIcon: Icon(Icons.search),
                isDense: true,
                contentPadding:
                    EdgeInsets.symmetric(vertical: lang == 'en' ? 11 : 5),
                hintText: 'Search'.tr()),
          ),
        ),
      ),
  

Здесь я перепробовал все для навигации и попробовал способ pushNamed и обычный способ push, но ничего не произошло, печать работает, но навигатор не работает, и я попробовал обернуть текстовое поле в Builder и все еще не работает, даже он не показывает никаких ошибок, ничего не происходит, парадокс в том, что он работает, когда янажмите на кнопку в том же виджете и на той же панели приложений.

Мне нужно нажать на экран результатов поиска после нажатия enter на клавиатуре, я надеюсь, что есть другой способ вместо onSubmitted.

версия flutter 1.22

Комментарии:

1. Не уверен, связано ли это, но вы проверили последнее обновление о Navigator 2.0?

2. @OsaXma нет, где я могу проверить?

3. Я ищу об этом, какая разница в написании кода?

Ответ №1:

Необходимо нажать клавишу ввода на клавиатуре. и фокус из текстового поля.

Проверьте здесь