如何在颤动的背面按下处理切换页面逻辑

时间:2018-06-02 04:20:12

标签: android ios dart flutter onbackpressed

我是新手,我通过onWillPop()递回了新闻事件以显示警告对话框。但是我只需要显示主页的警告对话框(比如你要退出吗?)。在代码中我有一个类似当前页面的类型,如果当前页面是home,那么只显示Alert对话框或以其他方式切换到主页。

代码

if(currentType == Home)
{
    showExitDialog();
}
else
{
   switchToHome();
}

我在哪里可以处理这个?

1 个答案:

答案 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();
    },),
  ),