1.碎片是一种可以嵌入在 Activity 中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间;
1)碎片地简单使用:
--创建碎片布局文件 fragment.xml;
--创建类 MyFragment, 继承父类 Fragment (android.app包下),并重写 onCreateView() 方法,指定当前 Fragment 类的布局文件为 fragment.xml;
--在 Activity 的布局文件中添加 <fragment> 标签,指定 android:name 属性为创建的 MyFragment类的全路径名;
2)动态加载碎片:
--创建待添加的碎片实例;
--调用 getFragmentManager() 获取到 FragmentManager();
--调用 fragmentManager.beginTransaction() 方法开启事务 transaction;
--向容器中中添加碎片,一般使用 transaction.replace() 方法实现,需传入容器的id和待添加的碎片实例;
--调用 transaction.commit() 方法提交事务;
--可以调用 transaction.addToBackStack(null) 方法将 fragment 添加至返回栈中,这样按 Back 键后当前 Activity 不会finish();
2.碎片之间的通信:
1)调用 FragmentManager 的 findFragmentById() 方法可以获取到相应的碎片实例,然后就可以在 Activity 中调用碎片中的方法了;
2)在碎片中调用 getActivity() 可以获取与其相关联的 Activity 实例,然后可以在碎片中调用 Activity 中的方法;
3)碎片之间的通信可以先通过在某一碎片中获取 Activity 实例,然后再通过 Activity 实例获取另一碎片的实例;
3.碎片的生命周期:
1)运行状态;
2)暂停状态;
3)停止状态;
4)销毁状态;
相关方法:
1)onAttach():当碎片与 Activity 建立关联的时候调用;
2)onCreateView():为碎片加载视图时调用;
3)onActivityCreated():确保与碎片相关联的 Activity 一定已经创建完毕时调用;
4)onDestroyView():当与碎片关联的视图被移除时调用;
5)onDetach():当碎片和 Activity 解除关联的时候调用;
4.可以使用限定符为不同屏幕大小的设备准备不同的布局;