使用fragment
使用两个布局文件,left_fragment.xml和right_fragment.xml,然后新建两个类LeftFragment和RightFragmet,分别继承Fragmnet类,实现onCreateView方法,然后在活动布局activity_main.xml中添加这两个碎片。
动态加载fragment
- 创建要添加的碎片实例
- 获取FragmentManager,在活动中可以通过getSupportFragmentManager得到
- 通过beginTransaction开启一个事务
- 向容器(比如布局)中添加或者替换碎片
- 调用commit提交事务
可以在事务提交之前用addToBackStack
方法模拟返回栈,当点击back的时候回到上一个fragment。
碎片和活动之间进行通信
从活动中获取碎片:可以通过FragmentManaget的findFragmentById方法。
从碎片中获得活动:使用getActivity方法就能获得碎片相关联的活动。
还可以通过活动来进行碎片和碎片之间的通信。
碎片的生命周期
和活动的生命周期类似,有四个生命周期
- 运行状态
- 暂停状态
- 停止状态
- 销毁状态
活动处于运行状态,碎片可见,碎片就进入运行状态。活动处于停止状态,碎片处于停止状态,或者碎片使用remove等方法,碎片进入停止状态,其他情况,碎片和活动的运行状态相同。同样的碎片也有回调方法。
还可以通过限定符large来判断设备是手机和平板,从而切换单页模式和双页模式。
要创建一个简单的新闻App,这里可以通过帧布局的方式来给新闻标题布局。