首页 > 其他 > 详细

FragmentTransaction add() hide() detach() show

时间:2015-02-13 13:15:03      阅读:259      评论:0      收藏:0      [点我收藏+]

使用add()加入fragment时将触发onAttach(),使用attach()不会触发onAttach()

使用replace()替换后会将之前的fragment的view从viewtree中删除

触发顺序:

detach()->onPause()->onStop()->onDestroyView()

attach()->onCreateView()->onActivityCreated()->onStart()->onResume()

使用hide()方法只是隐藏了fragment的view并没有将view从viewtree中删除,随后可用show()方法将view设置为显示

而使用detach()会将view从viewtree中删除,和remove()不同,此时fragment的状态依然保持着,在使用attach()时会再次调用onCreateView()来重绘视图,注意使用detach()后fragment.isAdded()方法将返回false,在使用attach()还原fragment后isAdded()会依然返回false(需要再次确认)

执行detach()和replace()后要还原视图的话, 可以在相应的fragment中保持相应的view,并在onCreateView()方法中通过view的parent的removeView()方法将view和parent的关联删除后返回

FragmentTransaction add() hide() detach() show

原文:http://www.cnblogs.com/chuiyuan/p/4290055.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!