有没有办法在特定页面上停用 Android 后退按钮?
class WakeUpApp extends StatelessWidget { @override Widget build(BuildContext context) { return new MaterialApp( title: "Time To Wake Up ?", home: new WakeUpHome(), routes: <String, WidgetBuilder>{ '/pageOne': (BuildContext context) => new pageOne(), '/pageTwo': (BuildContext context) => new pageTwo(), }, ); } }
在 pageOne 上,我有一个按钮可以转到 pageTwo:
new FloatingActionButton( onPressed: () { Navigator.of(context).pushNamed('/pageTwo'); }, )
我的问题是,如果我按 android 屏幕底部的后退箭头,我会返回 pageOne。我希望这个按钮根本不显示。理想情况下,除非用户将手指按住屏幕 5 秒钟,否则我希望无法离开此屏幕。(我正在尝试为幼儿编写一个应用程序,并且希望只有父母能够导航出特定的屏幕)。
答案是WillPopScope。它将防止页面被系统弹出。您仍然可以使用Navigator.of(context).pop()
WillPopScope
Navigator.of(context).pop()
@override Widget build(BuildContext context) { return new WillPopScope( onWillPop: () async => false, child: new Scaffold( appBar: new AppBar( title: new Text("data"), leading: new IconButton( icon: new Icon(Icons.ac_unit), onPressed: () => Navigator.of(context).pop(), ), ), ), ); }