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

java – 在FragmentTransaction中使用add().addToBackStack(),ad

发布时间:2020-12-14 05:09:01 所属栏目:Java 来源:网络整理
导读:在 Android docs上的FragmentTransaction项目中,描述了方法replace()与为当前视图中添加的所有片段调用remove()方法相同,然后调用add()方法.在这种情况下,为了恢复以前的片段,我们可以使用addBackToStack(),这意味着事务状态仍然由片段管理器管理,并且当我们
在 Android docs上的FragmentTransaction项目中,描述了方法replace()与为当前视图中添加的所有片段调用remove()方法相同,然后调用add()方法.在这种情况下,为了恢复以前的片段,我们可以使用addBackToStack(),这意味着事务状态仍然由片段管理器管理,并且当我们弹出堆栈时它会反转它的操作.

另一方面,当我们使用add()实现事务时,除了使用add().addBackToStack()之外,我们可以使用detach()方法并使用attach()恢复片段,这些行为与addBackToStack().

那么这些场景背后的区别是什么?

解决方法

我研究的更多,显然,detach()和addToBackStack()之间的区别在片段的生命周期.当我们在后面的堆栈中添加Fragment时,依次调用onPause(),onStop()和onDestroyView()之后的方法.在这种状态下,片段清理与其视图相关联的资源,并在那里等待再次被调用.从后面的堆栈返回到布局被称为方法onCreateView()只是为片段绘制其用户界面.其实这个片段没有被破坏.

另一方面,当我们使用detach()来删除或替换片段时,首先调用所有相同的方法(onPause(),onStop(),onDestroyView()),将这两个方法:onDestroy(),to做最后的清理片段的状态和
onDetach(),将该片段分离为不再与其活动关联.

基本上,在幕后,他们没有相同的行为:使用addToBackStack()片段保持实例化和detach(),不要.

(编辑:李大同)

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

    推荐文章
      热点阅读