我刚开始与Flutter合作,我不会撒谎。但是,我遇到的一个“问题”是,当您按返回键时,它将导航到上一个屏幕。我知道那应该发生,但是我该如何改变呢?另外,appBar按钮的作用相同,因此我也在寻找该按钮的“修复程序”。
如果您需要任何代码,请告诉我!祝您有美好的一天,对于拼写错误,我们深表歉意!
答案 0 :(得分:2)
首先,您需要在MaterialApp
中设置路线的名称:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
initialRoute: '/',
routes: {
'/': (context) => MyHomePage(),
'/second': (context) => Page2(),
'/third': (context) => Page3(),
},
);
}
}
然后,您需要用Scaffold
包装第三页(或您要从中导航回到HomePage
的任何其他页面)的WillPopScope
,以更改在用户按下后退按钮。最后,您需要使用popUntil
导航回到HomePage
。
这是第三页build
方法的代码:
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () {
Navigator.of(context)
.popUntil(ModalRoute.withName("/"));
return Future.value(false);
},
child: Scaffold(
body: Center(
child: Container(
child: Text('third page'),
),
),
),
);
}
答案 1 :(得分:0)
您可以使用
Navigator.of(context).pushNamedAndRemoveUntil(
'/', (Route<dynamic> route) => false);
创建一个与主屏幕相对应的命名路由'/'并完成。 如有任何疑问,请随时询问
答案 2 :(得分:0)
如果在MaterialApp中指定“ home”属性,则无需创建任何路线。然后可以按以下步骤导航到主屏幕:
Navigator.of(context).popUntil(ModalRoute.withName('/'));