【问题标题】:Custom Back button flutter自定义后退按钮颤动
【发布时间】:2021-08-17 23:08:54
【问题描述】:

大家好,我想改变退出 Android 默认底栏的后退按钮功能的行为。在我的应用程序中,如果我按下“箭头”它会关闭应用程序,但我希望它返回上一个屏幕。我不知道该怎么做我尝试使用 appBar 但使用 onPressed () 出现黑屏。在我看来,最好和优雅的解决方案是改变“箭头”的行为,它也必须适用于 IOS。我该怎么做?

这是应用条码

appBar: AppBar(
        leading: IconButton(
          icon: Icon(Icons.arrow_back, color: Colors.black),
          onPressed: () => Navigator.of(context).pop(),
          color: red,
        ),
      ),

【问题讨论】:

    标签: flutter dart flutter-layout


    【解决方案1】:

    如果你想改变应用底部后退按钮的行为,你可以使用 onWillPop

    WillPopScope(
      onWillPop: () => backPress(),
      child: Scaffold(
    ......
    

    backpress 函数决定做什么

    Future<bool> backPress() async {
      print("hellp");
      return false;
    }
    

    【讨论】:

    • 我尝试使用它,但是当单击按钮时出现黑屏并且它不会转到上一个屏幕,顺便说一句,调试打印工作我不知道如何...@987654323 @
    • 您确定导航器堆栈中还有另一个页面吗?
    • 我修复了这个问题,navigator.pop 不正确,因为它不会将新屏幕直接重定向到在主页上重定向的侧边栏,即仪表板。所以用户做的第一个选择,后退按钮总是会带到仪表板屏幕,我使用这行代码BlocProvider.of&lt;NavigationBloc(context).add(NavigationEvents.HomePageClickedEvents);而不是Navigator.pop(context);