android学习之fragment

来源:互联网 发布:mysql主从好处 编辑:程序博客网 时间:2024/04/30 14:10

一、关于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()

0 0