碎片是什么?
碎片(Fragment)是一种可以嵌入在活动(Activity)中的 UI 片段,它能让程序更加合理和充分的利用大屏幕的空间,因而在平板上应用的非常广泛。
碎片的使用方式
- 静态嵌入
- 动态加载
碎片和活动之间的通信
- 在活动中获取碎片:
RightFragment rightFragment = (RightFragment) getSupportFragmentManager().findFragmentById(R.id.right_fragment);
- 在碎片中获取活动:
MainActivity mainAcitivity = (MainActivity) getActivity();
- 在碎片中获取其他碎片:现在碎片中获取当前碎片所在活动,再从活动中获取其他碎片
碎片的声明周期
动态加载布局的技巧
使用限定符(Qualifiers):
- 大小:small, normal, large, xlarge
- 分辨率:ldpi(低分辨率,120 dpi 以下), mdpi(中等分辨率,120 - 160 dpi), hdpi(高分辨率,160 - 240 dpi), xhdpi(超高分辨率,240 - 320 dpi), xxhdpi(超超高分辨率,320 - 480 dpi)
- 方向:land(横屏设备), port(纵屏设备)
举例:最小宽度限定符,例如:layout-sw600dp,则当屏幕宽度大于 600 dp 时加载该文件夹下的布局文件,否则加载 layout 文件夹下的布局文件。
源码
源码见:https://github.com/optor666/first-line-code-of-android/tree/master/chapter04