点击后退按钮时如何执行

我有一个底部选项卡导航调用页面执行initState函数,然后通过按钮单击导航到一个页面,其中包含详细信息和操作,但是当我单击后退按钮转到原始页面时,initState不会再次运行,我发现因为当你将一个放在顶部时Flutter不会破坏页面,因为NAV不在新页面上,因为它不在菜单中,如何在单击后退按钮时再次运行initState或者是还有另一种方法来监听从后退按钮导航并运行需要更新数据的代码吗?

任何帮助都会很棒.

解决方法

您可以覆盖AppBarand上的认后退箭头,然后指定在调用Navigator.pop时要返回的值以触发状态更改:

代码

所以你需要在导航按钮的onpressed回调中有这样的东西

onpressed: ()async{
            var nav = await Navigator.of(context).push(newRoute);
            if(nav==true||nav==null){
              //change the state
            }
          },

在你的新路线你应该有这样的东西

new AppBar(
        leading: new IconButton(
          icon: new Icon(Icons.arrow_back),onpressed: (){Navigator.pop(context,true)}
        ),

我正在检查值null或true,因为当用户点击android屏幕上的BackButton(屏幕底部的那个)时返回null值.我也相信null也将与Flutter中的认BackButton一起返回,因此您实际上不需要覆盖leading属性,但我自己没有检查过,因此可能值得检查.

相关文章

这篇文章主要讲解了“FlutterComponent动画的显和隐怎么实现...
这篇文章主要讲解了“flutter微信聊天输入框功能如何实现”,...
本篇内容介绍了“Flutter之Navigator的高级用法有哪些”的有...
这篇文章主要介绍“Flutter怎么使用Android原生播放器”,在...
Flutter开发的android端如何修改APP名称,logo,版本号,具体...
Flutter路由管理初识路由概念一.路由管理1.1.Route1.2.Mater...