1.Fragment : 碎片
2.FrameLayout : 碎片佈局佈局
在使用動態添加碎片時,須要配合碎片佈局來完成,主要分爲 5 步:
1. 建立待添加的碎片實例。 MyFrame my = new MyFrame();
2. 獲取到 FragmentManager,在活動中能夠直接調用 getFragmentManager()方法獲得。
3. 開啓一個事務,經過調用 beginTransaction()方法開啓。
4. 向容器內加入碎片,通常使用 replace()方法實現,須要傳入容器的 id和待添加的碎
片實例。
5. 提交事務,調用 commit()方法來完成orm
在碎片中模擬返回棧:
FragmentTransaction 中提供了一個 addToBackStack()方法,能夠用於將一
個事務添加到返回棧中.生命週期
碎片和活動之間進行通訊:
1.活動中調用碎片:
RightFragment rightFragment = (RightFragment) getFragmentManager().findFragmentById(R.id.right_fragment);
2.碎片中調用活動:
MainActivity activity = (MainActivity) getActivity();
3.碎片和碎片通訊:
首先在一個碎片中能夠獲得與它相關聯的活動,而後再經過這個活動去獲取另一個碎片的實例,
這樣也就實現了不一樣碎片之間的通訊功能。事務
碎片的生命週期
1. 運行狀態
當一個碎片是可見的,而且它所關聯的活動正處於運行狀態時,該碎片也處於運行狀態。
2.暫停狀態
當一個活動進入暫停狀態時(因爲另外一個未佔滿屏幕的活動被添加到了棧頂) ,與它相關聯的可見碎片就會進入到暫停狀態
3.中止狀態
當一個活動進入中止狀態時,與它相關聯的碎片就會進入到中止狀態。
或者經過調用 FragmentTransaction 的 remove()、replace()方法將碎片從活動中移除,
但有在事務提交以前調用 addToBackStack()方法,這時的碎片也會進入到中止狀態。總的來講,
進入中止狀態的碎片對用戶來講是徹底不可見的,有可能會被系統回收。
4.銷燬狀態
碎片老是依附於活動而存在的,所以當活動被銷燬時,與它相關聯的碎片就會進入到銷燬狀態。
或者經過調用 FragmentTransaction 的 remove()、replace()方法將碎片從活動中移除,
但在事務提交以前並無調用 addToBackStack()方法,這時的碎片也會進入到銷燬狀態。資源
碎片還提供了一些附加的回調方法:
1. onAttach()
當碎片和活動創建關聯的時候調用。
2. onCreateView()
爲碎片建立視圖(加載佈局)時調用。
3. onActivityCreated()
確保與碎片相關聯的活動必定已經建立完畢的時候調用。
4. onDestroyView()
當與碎片關聯的視圖被移除的時候調用。
5. onDetach()
當碎片和活動解除關聯的時候調用。rem
動態加載佈局的技巧
1.限定符使用: 和系統提供drawable文件夾同一個特色
屏幕特徵 限定符 描述
small 提供給小屏幕設備的資源
大小 normal 提供給中等屏幕設備的資源
large 提供給大屏幕設備的資源
xlarge 提供給超大屏幕設備的資源
ldpi 提供給低分辨率設備的資源(120dpi如下)
分辨率 mdpi 提供給中等分辨率設備的資源(120dpi到 160dpi)
hdpi 提供給高分辨率設備的資源(160dpi到 240dpi)
xhdpi 提供給超高分辨率設備的資源(240dpi到 320dpi)get
方向 land 提供給橫屏設備的資源
port 提供給豎屏設備的資源it
2.使用最小寬度限定符:sw (Smallest-width Qualifier) 最小寬度限定符是在 Android 3.2 版本引入的
好比:在 res 目錄下新建 layout-sw600dp 文件夾, 表明600dp以上的設備會加載該文件夾下的文件io