1.碎片是什么
碎片(Fragment)是一种可以嵌入在活动当中的 UI 片段,它能让程序更加合理和充分地利用大屏幕的空间.
2.碎片的使用方式
2.1 静态使用
a.构造Fragment的布局文件xml
b.构建容纳Fragment布局文件的Fragment类
c.在主布局中引入
2.2动态使用
a.需要一个放置该Fragment的layout,
b.获得需要添加的Fragment的实例
c.获得FragmentManager,通过getFragmentManager()方法获得(导包区别v4)
d.开启事务FragmentTransaction;
e.向容器内加入Fragment,该容器即为上面设置的layout。利用replace添加。
f.提交事务。
2.3在Fragment中模拟Activity的返回栈
动态添加Fragment之后,点击back,程序就退出了;
添加代码
transaction.addToBackStack(null);
即可实现将Fragment放入“返回栈”中,点击back,当前Fragment退回到之前的Fragment,而不是退出。
2.4 Activity与Fragment之间相互通信
获取该Activity中的Fragment
FragmentManager的findViewById()的方法,从布局文件中获取碎片的实例
RightFragment rightFragment = (RightFragment) getFragmentManager()
.findFragmentById(R.id.right_fragment);
在Fragment中如何获得其所在的Activity
MainActivity activity = (MainActivity) getActivity();
3.Fragment的周期
需要关注的几个回调方法
onAttach和活动建立关联
onCreateView创建视图(加载布局)
onActivityCreated与碎片相关联的活动一定已经创建完毕
onDestroyView当与碎片关联的视图被移除的时候
onDetach和活动解除关联
4.动态加载布局的技巧
1使用限定符
建立两个文件夹,里面文件使用同一个名称。设备根据情况自动加载不同文件夹的文件
2.使用使用最小宽度限定符,根据临界值判断加载文件