1. 程式人生 > >Android學習之基礎知識七—碎片的最佳實踐

Android學習之基礎知識七—碎片的最佳實踐

一、Android碎片(Fragment)的最佳實踐——簡易版新聞應用

第一步:新建FragmentBestPractice專案,在app/build.gradle當中新增:RecyclerView 依賴庫,注意:新增完成後,一定要記住點選右上角的:Sync now

第二步:建立新聞實體類

第三步:建立新聞內容的佈局檔案:news_content_frag.xml

  新聞內容佈局主要分為兩個部分:頭部顯示新聞標題、正文顯示新聞內容,中間用一條細線分隔開,細線利用View來實現,通過background屬性設定一下顏色就行了

 第四步:建立新聞內容的碎片:NewsContentFragment類,繼承Fragment,注意:這裡繼承的Fragment不是系統自帶的Fragment,而是:

android.support.v4.app.Fragment

  上面我們已經把新聞內容的碎片和佈局建立好了,但是它們都是在雙頁模式中使用的,如果是單頁模式中使用的話,我們還需要再建立一個新聞內容的活動:NewsContentActivity,並指定對應的佈局檔名為:news_content.xml

第五步:在news_content.xml中直接引入NewsContentFragment碎片,新聞內容的佈局:news_content_frag.xml也自動載入了進來。

第六步:在NewsContentActivity中顯示新聞標題和內容

 

第七步:建立新聞的標題列表佈局:news_title_frag.xml,在這個列表中由於只有標題,所以使用RecyclerView控制元件

第八步:使用RecyclerView控制元件就必須要有子項佈局,即:標題列表中一個標題的佈局:news_item.xml. 標題使用TextView表示就行了

  android:padding  給控制元件周圍補白,這樣不至於讓文字內容會緊貼在邊緣上

  android:singleLine  設定為true表示讓這個TextView只能單行顯示

  android:ellipsize  用於設定文字的內容超出控制元件寬度時,文字的縮略方式。這裡表示在尾部進行縮略。

第九步:新聞的標題列表和子項佈局建立完成後,建立標題碎片:newsTitleFragment

為了讓news_content_layout只在雙頁模式中出現,可以藉助我們剛剛學過的限定詞來實現

第十步:修改activity_main.xml,用於單頁模式下,會載入新聞標題列表一個碎片

 第十一步:在res目錄下,新建layout-sw600dp資料夾,在該資料夾下再建一個activity_main.xml,並在其中指定一個id:news_content_layout,用於雙頁模式下,載入兩個碎片:新聞標題列表、新聞內容

  新聞內容放在了一個FragmentLayout佈局中,並且id就為:news_content_layout

第十二步:在NewsTitleFragment中新建一個內部類:NewsAdapter 作為RecyclerView的介面卡,用來將新聞列表展示出來

第十三步:最後一步,向RecyclerView中填充資料,修改NewsTitleFragment中的程式碼

第十四步:執行程式

在手機上執行程式,只會顯示新聞的標題列表(左),可以上下滑動螢幕,點選任意標題,切換到新聞內容的活動介面(右)

      

在PAD上面執行程式,新聞標題列表和新聞內容都在一個介面顯示出來

二、總結思路

  在手機上執行,先顯示出一個新聞的標題列表,通過點選標題跳轉頁面,顯示出新聞的內容

  在PAD上執行,同時顯示出新聞標題列表和新聞內容