При использовании встроенного скаффолда / панели приложения в флаттере для веб-флаттера, при нажатии новых маршрутов с помощью навигатора кнопка «Назад» по-прежнему отображается на панели приложения, а URL-адрес в браузере остается неизменным.Это означает, что кнопка возврата браузера не работает, что является очень странным UX.Есть ли способ обойти это?
Я уже пробовал проталкивать маршрут разными способами (pushReplacement избавляет от кнопки возврата, но кнопка возврата в браузере по-прежнему не работает)
HomeScreen.dart
@override
State<StatefulWidget> createState() {
return HomeScreenState();
}
}
class HomeScreenState extends State<HomeScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
endDrawer: Navbar.buildDrawer(context),
appBar: Navbar.buldNavbar(context),
body: _buildBody(),
);
}
Widget _buildBody(){
return Text('Home');
}
}
Navbar.dart
static Drawer buildDrawer(BuildContext context) {
return Drawer(
child: ListView(
children: <Widget>[
ListTile(
title: Text('Home'),
leading: Icon(Icons.home),
onTap: (){
Navigator.of(context).pushReplacementNamed('/');
},
),
ListTile(
title: Text('About Us'),
leading: Icon(Icons.people),
onTap: (){
Navigator.of(context).pushReplacementNamed('/about');
},
),
ListTile(
title: Text('Contact'),
leading: Icon(Icons.contact_mail),
onTap: (){
Navigator.of(context).pushReplacementNamed('/contact');
},
)
],
),
);
}
static AppBar buldNavbar(BuildContext context) {
return AppBar(
title: FlatButton(
child: Padding(
padding: EdgeInsets.all(8),
child: Image.asset('assets/whiteLogo.png'),
),
onPressed: () {
Navigator.of(context).pushNamed('/');
},
),
);
}
}
Я ожидаю, что маршруты изменят URL в браузере, что позволит нам использовать кнопку "Назад" и другие функции обычной маршрутизации, но фактический результат - тот же самый маршрут, отображаемый в браузере и использующий автоматическую кнопку возврата на панели приложений