碎片是什么?
碎片(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