1. 程式人生 > >安卓開發2——碎片Fragment的使用

安卓開發2——碎片Fragment的使用

本實驗在上一次實驗基礎上進行:安卓開發1——活動與Intent的使用

實驗內容:

1、建立一個橫屏介面

方法:在layout目錄旁再建立一個同級別的layout-land目錄,將activity_list.xml佈局檔案複製到layout-land中即可

2、新增一個碎片DetailFragment,將新聞詳情製作成碎片

3、修改新聞詳情的佈局,將其中的控制元件用DetailFragment替換

4、修改新聞列表橫屏佈局,將列表右邊設計為一個新聞詳情

5、在AVD中可實現模擬橫、豎屏測試的功能,只要該活動設計有layout和layout-land兩種佈局,那麼橫屏和豎屏時則會載入不同的佈局檔案。


                                

7、手機在橫屏或豎屏時會載入相應的佈局檔案,但兩種佈局檔案均使用同一個類檔案。修改ListActivity類程式碼,先判斷螢幕狀態,若橫屏,則點選列表時將新聞內容填充至右側碎片;若豎屏,則點選列表時開啟詳情活動顯示新聞內容。

判斷橫屏或豎屏方法:

Configuration mConfiguration = MainActivity.this.getResources().getConfiguration();

int ori = mConfiguration.orientation;

if (ori == mConfiguration.ORIENTATION_LANDSCAPE) {

Toast.makeText(MainActivity.this, "現在是橫屏", Toast.LENGTH_LONG).show();

} else if (ori == mConfiguration.ORIENTATION_PORTRAIT) {

Toast.makeText(MainActivity.this, "現在是豎屏", Toast.LENGTH_LONG).show();

}

實驗過程:

1、建立橫屏介面:建立layout-land目錄存放橫屏介面,將layout檔案中的activity_list.xml佈局檔案複製到layout-land中,如下。

                                                                             

2、建立一個碎片DetailFragment,同時會產生一個對應的佈局fragment_detail.xml。在DetailFragment中修改程式碼,用靜態變數方法獲取資料。

                                             

3、修改碎片佈局,可直接複製原ativity_detail.xml中的佈局,將其作為新聞詳情頁,之後會顯示於介面右方。

4、修改layout-land目錄下的activity_list.xml新聞列表佈局,在其右邊動態新增碎片,新增方法如下,此處將會顯示上一步的碎片佈局。

                                   

5、在TextView點選事件中新增關鍵性程式碼對手機橫豎屏狀態進行判斷,並分別進行不同的佈局展示,豎屏時開啟第二個活動頁並用Intent傳遞資料,橫屏時則在右方啟動碎片展示新聞詳情並用靜態變數方法傳遞資料,關鍵性程式碼和效果圖如下。

                           

                                                                                                   手機為豎屏狀態時:

                                              

                                                                                                 手機切換為橫屏狀態時: