FragmentTransaction add() ,hide(), detach(), show()

转载 2016年06月01日 01:19:53

使用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的关联删除后返回

fragment中的attach/detach方法说明(网上拷贝,只为作笔记)

detach()会将view从viewtree中删除,和remove()不同,此时fragment的状态依然保持着,在使用attach()时会再次调用onCreateView()来重绘视图,注意使用d...

Android Fragment 真正的完全解析(上) add remove replace detach attach hide show

自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~ 本篇博客力求为大家说明Fragment如何...

Android 之fragment显示 FragmentTransaction show and hide

我们一般显示fragment用的是 getSupportFragmentManager().beginTransaction().add(id, fragment).commit();或者使用getS...

Fragment详解之四——管理Fragment(2)

上一篇,给大家讲了有关Fragment管理的几个函数,即add,replace,remove,这节再讲讲其它函数,然后再给大家看一个系统BUG。...

FragmentTransaction使用全解

前言之前已经写过用Fragment做主界面以及Fragment与Activity通信的文章。两篇文章如下: ndroid viewpager+fragment做主界面(超容易理解的demo!) a...

FragmentTransaction管理的Fragment生命周期状态

在我们Android中,对Fragment的操作都是通过FragmentTransaction来执行的。而如果从Fragment的结果来看,FragmentTransaction中对Fragment的...

FragmentManager及FragmentTransaction浅析

简单的介绍了下FragmentManager以及FragmentTransaction的实现原则

Pro Android学习笔记(四三):Fragment(8):再谈Transaction和管理器

Transaction的一些操作 Transaction提供add()、hide()、show()、remove()等功能。下面我们利用这些功能通过fragment的隐藏和显示,为用户提供切换的效果。...

Fragment(五)Transaction 源码分析

Fragment(五)Transaction 源码分析   概述 这篇文章的简要分析了Activity中的Transaction和add,replace等操作以及backstack的工作原理。   分...

FragmentTransaction.replace() 你不知道的坑

使用fragmenttransaction replace 方法详解,以及替换失败的原因
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:FragmentTransaction add() ,hide(), detach(), show()
举报原因:
原因补充:

(最多只允许输入30个字)