碎片:是一种可以嵌入在活动当中的UI片段,他能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用的非常广泛
碎片可以被认为是迷你型的活动
4.1 碎片的使用方式
4.1.1 碎片的简单用法
1、新建一个左侧碎片布局left_fragment.xml和右侧碎片布局right_fragment,并实现其代码
2、在主包下创建一个LeftFragment类和RightFragment类,均继承Fragment类,重写onCreateView()方法,这样就创造了两个碎片
3、在主活动布局activity_main.xml中实现代码
4.1.2 动态添加碎片
在上述操作的基础上
1、新建一个another_right_fragmentxml布局文件,实现其代码
2、新建一个AnotherRightFragment类作为另一个右侧碎片,继承Fragment,实现代码
3、在activity_main.xml中,实现代码
4、在主活动中,动态添加碎片,
1)在onCreate中创建动态添加对象的实例
2)重写replaceFragment()方法,方法中获取FragmentManager,在活动中调用getSupportFragmentManager()方法得到
3)开启一个事务,调用beginTransaction();
4)向容器内添加或替换碎片,用replace()实现
5)调用commit()方法提交事务
4.1.3 在碎片中模拟返回栈
在上述操作的基础上,我们在主活动中的replaceFragment()方法中实现**traction.addToBackStack(null);**语句即可
4.1.4 碎片与活动之间进行通信
4.2 碎片的声明周期
4.2.1 碎片的状态和回调
一、状态
1、运行状态 :当一个碎片可见时,且所关联的活动正处于运行状态时,该碎片也处于运行状态
2、暂停状态:当一个活动进入暂停状态,与他相关联的可见碎片就会进入暂停状态
3、停止状态
4、销毁状态
二、回调方法
1、onAttach():当碎片和活动建立关联时调用
2、onCreateView():为碎片创建视图时调用
3、onActivityCreated():确保与碎片相关联的活动一定已经创建完毕时调用
4、onDestroyView():当与碎片关联的视图被移除时调用
5、onDetach():当碎片与活动解除关联时调用
碎片完整的生命周期示意图:
4.3 动态加载布局的技巧
4.3.1 使用限定符
限定符:用于判断程序应该使用单页模式还是双页模式
4.3.2 使用最小宽度限定符
最小宽度限定符允许我们对屏幕的宽度指定一个最小值(以dp为基本单位),然后以这个最小值为临界点,屏幕宽度大于这个值的设备就加载一个布局,反之就加载小于这个宽度的布局