У меня один AppBar во всем приложении. А для go на новые страницы я использую Navigator.push
. Но когда я открываю новую страницу, например «Поиск», из нее я могу открыть новый экземпляр страницы «Поиск». Как избежать дублирования страниц? Могу ли я определить, какая страница у меня открыта сейчас, чтобы предотвратить ее повторное открытие?
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Search()),
);
Моя полная панель приложений
@override
Widget build(BuildContext context) {
return AppBar(
backgroundColor: getAppBarColor(),
actions: <Widget>[
Padding(
padding: EdgeInsets.only(right: 20.0),
child: GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Search()),
);
},
child: Icon(
Icons.search,
size: 26.0,
),
)),
Padding(
padding: EdgeInsets.only(right: 20.0),
child: GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Contacts()),
);
},
child: Icon(Icons.call),
)),
Padding(
padding: EdgeInsets.only(right: 20.0),
child: GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Basket()),
);
},
child: Icon(Icons.shopping_cart),
)),
],
);
}