加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

点击后退按钮时如何执行

发布时间:2020-12-14 14:50:10 所属栏目:百科 来源:网络整理
导读:我有一个从底部选项卡导航调用的页面执行initState函数,然后通过按钮单击导航到一个页面,其中包含详细信息和操作,但是当我单击后退按钮转到原始页面时,initState不会再次运行,我发现因为当你将一个放在顶部时Flutter不会破坏页面,因为NAV不在新页面上,因为它
我有一个从底部选项卡导航调用的页面执行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属性,但我自己没有检查过,因此可能值得检查.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读