一、关于fragment
fragmentchan引入于android3.0,引入的目的是为了解决多屏、大屏分屏、一个activity多个界面等问题。fragment相对于activity,响应速度更加快,内存占用更少、切换动画更加丰富。一个app,在不同屏幕下的表现可能有所差别,在横屏竖屏也可能有所差别,不可能每种屏幕都做不同的代码,所以引入fragment解决这个问题。
二、fragment的生命周期
与activity生命周期对比
收集张哥画的图,有空再对着源码消化
三、fragment的静态使用
xml中声明<fragment>标签,name属性指定fragment
在MessageListFragment的onCreateView中inflate出layout,inflate出来的layout不是一个fragment控件,而是fragment构造出来的view
四、fragment的动态使用
一般动态fragment有以下步骤:
1、获取fragmentManager,mFragmentManager = activity.getFragmentManager();
2、获取fragementTransaction,ft = mFragmentManager.beginTransaction()
3、通过fragmentTransaction添加fragment,保证一系列fragment操作的原子性
ft.add()往activity添加fragment
ft.remove()从activity移除fragment
ft.replace()使用另外一个fragment替换当前的,实际上就是先remove再add
ft.commit()提交事务,保证添加fragment的原子操作
五、fragment的管理
六、fragment切换动画
注意:
1、fragment最好通过setArgument设置参数,不要通过构造函数传参
2、fragment中获取activity:getActivity()