微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

点击后退按钮时如何执行

我有一个底部选项卡导航调用页面执行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属性,但我自己没有检查过,因此可能值得检查.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐