Flutter Android 后退按钮导航回到主页
Flutter Android back button navigating back to main page
我希望能够使用后退按钮导航回主页而不是关闭应用程序,我看到了 WillPopScope 小部件选项,但需要显示一个对话框,有没有办法弹出在没有对话框的情况下使用 android 后退按钮返回?
您可以使用 Navigator.canPop() 方法来避免应用程序退出。
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
return Navigator.canPop(context);
},
child: Scaffold(
appBar: AppBar(title: const Text('HomePage')),
floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
floatingActionButton: FloatingActionButton(
child: const Icon(Icons.add),
backgroundColor: Colors.red,
onPressed: () {
Navigator.push(
context, MaterialPageRoute(builder: (context) => SecondPage()));
},
),
),
);
}
}
onWillPop 回调需要返回布尔值的 Future。你可以做到
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () {
return Future.value(true); // or return Future.value(false);
},
child: Container()
);
}
我希望能够使用后退按钮导航回主页而不是关闭应用程序,我看到了 WillPopScope 小部件选项,但需要显示一个对话框,有没有办法弹出在没有对话框的情况下使用 android 后退按钮返回?
您可以使用 Navigator.canPop() 方法来避免应用程序退出。
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
return Navigator.canPop(context);
},
child: Scaffold(
appBar: AppBar(title: const Text('HomePage')),
floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
floatingActionButton: FloatingActionButton(
child: const Icon(Icons.add),
backgroundColor: Colors.red,
onPressed: () {
Navigator.push(
context, MaterialPageRoute(builder: (context) => SecondPage()));
},
),
),
);
}
}
onWillPop 回调需要返回布尔值的 Future。你可以做到
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () {
return Future.value(true); // or return Future.value(false);
},
child: Container()
);
}