在特定页面上,是否有办法停用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(),
},
);
}
}
在第一页上,我有一个按钮可以转到第二页:
new FloatingActionButton(
onPressed: () {
Navigator.of(context).pushNamed('/pageTwo');
},
)
我的问题是,如果我按下android屏幕底部的返回箭头,我会返回到第一页。我不希望这个按钮出现。理想情况下,我希望没有可能离开这个屏幕,除非用户保持他的手指按在屏幕上5秒钟。(我正试图为初学走路的孩子编写一个应用程序,希望只有父母能够导航出特定的屏幕)。
虽然Remi的答案是正确的,但通常您不想简单地阻止后退按钮,而是希望用户确认退出。
您可以通过从确认对话框中获取答案来执行类似的操作,因为onWillPop
是一个未来。
@override
Widget build(BuildContext context) {
return WillPopScope(
child: Scaffold(...),
onWillPop: () => showDialog<bool>(
context: context,
builder: (c) => AlertDialog(
title: Text('Warning'),
content: Text('Do you really want to exit'),
actions: [
FlatButton(
child: Text('Yes'),
onPressed: () => Navigator.pop(c, true),
),
FlatButton(
child: Text('No'),
onPressed: () => Navigator.pop(c, false),
),
],
),
),
);
}
正如雷米·罗塞利特所指出的,威尔波普普
通常是要走的路。但是,如果您正在开发一个有状态的小部件,它应该直接对后退按钮做出反应,则可以使用以下命令:
https://pub.dartlang.org/packages/back_button_interceptor
注意:我是这个包的作者。
答案是WillPopScope
。它将防止页面被系统弹出。您仍然可以使用Navigator.of(上下文). 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(),
),
),
),
);
}
在特定页面上有没有办法停用返回箭头按钮?我建立了一个启动屏幕,每当启动屏幕导航到主页,在主页appBar返回箭头显示,我如何才能停用它或清除返回到前一页(欢迎屏幕)的箭头。
问题内容: 我想在操作栏中自定义活动后退按钮,而不是在硬键后退按钮中自定义。我已经重写了该方法。它可以与我的模拟器后退按钮一起使用,但不能与操作栏后退按钮一起使用。 我希望它与操作栏一起发生。我怎样才能做到这一点? 这是我的代码: 我已经用了这个祝酒,无论是否按回去都可以,但是实际的实现方式有所变化,例如想回到上一个活动。但这不适用于操作栏顶部的按钮(活动标题除外)。 请任何人可以指定我这个问题。
我想自定义操作栏中的“活动后退”按钮,而不是硬键后退按钮。我已经重写了onBackPressed()方法。它适用于我的emulator back按钮,但不适用于action bar back按钮。 我希望它发生在动作栏上。我该怎么做? 这是我的代码: 我已经使用了这个祝酒词,不管后退是否有效,但是实际的实现变化喜欢移动回以前的活动。但是这不适用于操作栏顶部的按钮(除了活动标题)。 请任何人都可以指
那么,如何删除的Flutter上的Android back、home和square按钮呢?
问题内容: 如何在自己的应用程序中复制此功能? 我认为肯定有三种可能性… 捕获后退按钮的按下(如下所示),然后调用home按钮调用的任何方法。 捕获后退按钮按下,然后欺骗主页按钮。 捕获后退按钮的按下,然后启动主屏幕的活动,从而有效地将应用程序的活动置于停止状态。 编辑: 我知道有关服务,并且正在与此问题相关的应用程序中使用一种。该问题专门用于在按“后退”按钮时将活动置于停止状态而不是已破坏状态。
我有一个文本框。当我单击“添加”按钮时,我将键发送到文本框,我想添加另一行,所以我再次单击“添加”按钮,但它正在添加另一个输入框来输入值,但它总是覆盖第一行。//单击添加行按钮//ngDriver。FindElement(ByXPath("//div[1]/div[3]/form/div/field dset[2]/div/div[4]/按钮")。单击();