#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:
Необходимо нажать клавишу ввода на клавиатуре. и фокус из текстового поля.