1.碎片入门
- 新建一个 碎片的布局
- 新建一个碎片,重写Fragment的onCreateView() 方法,然后在这个方法中通过LayoutInflater的inflate() 方法将刚才定义的Right_fragment布局动态加载进来
- 布局文件中添加该碎片
2.动态添加碎片
意图:通过左侧的button按钮给右侧布局添加新的碎片
首先,创建一个新的碎片实例AnotherRightFragment
然后,在活动中通过调用getSupportFragmentManager() 方法获取FragementManager
然后,开启一个事务, 通过调用beginTransaction() 方法开启
然后,向容器内添加或替换碎片, 一般使用replace() 方法实现, 需要传入容器的id和待添加的碎片实例
最后,提交事务, 调用commit() 方法来完成
3.碎片模拟返回栈
4.碎片活动之间的通信
活动获取碎片实例:
RightFragment rightFragment = (RightFragment) getSupportFragmentManager()
.findFragmentById(R.id.right_fragment);
碎片获取活动实例:
MainActivity activity = (MainActivity) getActivity();
5.碎片生命周期
碎片的状态:
碎片的回调:
6.程序运行时动态加载布局
文件夹名称:layout_限定符/activity_main.xml
最小宽度限定符事例:
Layout_sw600dp/activity_main.xml
意味着,当程序运行在屏幕宽度大于600dp的设备上时,
会加载layout_sw600dp/activity_main布局
当程序运行在屏幕宽度小于600dp的设备上时
则仍然加载默认的layout/activity_main布局
案例分析(见原书):
- 首先执行MainActivity 通过限定符判断选取单页模式还是双页模式的布局文件
activity_main.xml或layout_sw600dp/activity_main.xml
这布局文件中用来添加碎片:
android:name=“com.example.fragmenttest.NewsTitleFragment”
于是我们要提前写好碎片布局以及碎片的Java代码 - 双页模式碎片布局由头部和内容部分组成 实现碎片类
news_content_frag.xml NewsContentFragment.java - 单页模式需要单独创建一个活动 单页模式碎片布局 单页模式活动
activity_news_content.xml NewsContentActivity - 然后要实现RecycleView布局 以及它的子项布局
news_title_frag.xml news_item.xml - 然后新建展示列表的碎片
NewsTitleFragment.java - 填充数据 修改碎片文件
NewsTitleFragment.java