Fragment
-
Fragment结构
- 活动布局中的FragmentLayout(布局)容器
- Fragment的子布局。
- Fragment类。
-
一般添加和替换碎片都是在FragmentLayout(布局)容器中。
-
静态加载碎片时呢,一定要用V4包里的,避免出现Fragment加载错误。
-
如果在同一次事务添加了多个Fragment呢,显示的次序同添加次序一致。add()添加碎片后就默认显示,如一次向同一容器添加多个碎片了,就得hide()不显示的Fragment。
-
一个事务对象呢,只支持一次提交。
-
调用FragmentManager.add()添加Fragment时,可通过参数传入此次行为的日志名。调用findFragmentByTag(),传入日志名就能获取添加的碎片。
-
hide()方法仅是隐藏视图,detach()方法是销毁视图,最后通过show()方法都能显示出来。
-
可调用FragmentManager对象的findFragmentById(),findFragmentByTag(),获取到activity的返回栈中存在的Fragment。
-
Fragment 分别在app包和V4包都有,但两者兼容的最低版本不同,app包里的最低兼容 android 3.o版本,V4包里的最低兼容 android 1.6版。一般使用V4包里的就好,相应的创建FragmentManager对象时,也就只能调用V4包里的方法创建了,getSupportFragmentManager()。
- 事务就是同一时刻呢执行一组动作。
- 向activity中添加Fragment,都要取得一个FragmentTransaction的实例,其中就可以对Fragment进行add,remove,replace。在调用commit()前,执行了addToBackStack(),事务就会添加到返回栈中。当用户按下返回键时呢,事务的所以动作都会反向执行(事务回溯)。
- 但如没有执行addToBackStack()呢,被删除的Frgament就会被销毁,而不是进入停止状态。当按下返回键时呢此Fragment不会被恢复。就是回到返回栈保存事务之前的状态。
-
以下此图是Fragment的完整生命周期。
网友评论