我是新手,我通过onWillPop()递回了新闻事件以显示警告对话框。但是我只需要显示主页的警告对话框(比如你要退出吗?)。在代码中我有一个类似当前页面的类型,如果当前页面是home,那么只显示Alert对话框或以其他方式切换到主页。
代码
if(currentType == Home)
{
showExitDialog();
}
else
{
switchToHome();
}
我在哪里可以处理这个?
答案 0 :(得分:2)
在您的应用栏上设置自定义leading
属性。
默认值是返回一页,所以如果你没有设置任何内容,后面的箭头就会出现,它会Navigator.of(context).maybePop();
来自Navigator docs
如果这是null并且[automatedImplyLeading]设置为true,则[AppBar]将暗示一个合适的小部件。例如,如果[AppBar]在[Scaffold]中也有[Drawer],[Scaffold]将使用打开抽屉的[IconButton]填充此小部件(使用[Icons.menu])。如果没有[抽屉]并且父[导航器]可以返回,[AppBar]将使用调用[Navigator.maybePop]的[BackButton]。
但如果你想覆盖它,请执行此操作
在您的主页上
appBar: AppBar(
leading: IconButton(icon: Icon(Icons.exit_to_app),onPressed: (){
exitTheApp();
},),
),
在您的其他AppBars上
appBar: AppBar(
leading: IconButton(icon: Icon(Icons.home),onPressed: (){
showHomePage();
},),
),