1. 程式人生 > >Android5.0和6.0之後新增的控制元件說明

Android5.0和6.0之後新增的控制元件說明

Android自5.0後增加了不少新控制元件,幫助開發者實現了更酷更炫的UI效果。可是對於初學者來說,這些新控制元件的用法不像老控制元件那麼簡單,網上相關的使用介紹也不如老控制元件那樣豐富,種種情況無疑加大了我們學習這些新控制元件的難度。為此,博主初步整理了Android在5.0和6.0之後的新增控制元件,及其對應的說明博文,給大家提供一個可資學習和借鑑的索引。


下面是新增控制元件的索引表格:


以上的新控制元件,在專案中使用的時候,可分為三大類:

1、第一類是核心提供的控制元件,位於SDK的android.jar中。
這個與系統版本有關,每個版本的android.jar是固定的,有在該核心中定義的控制元件才能正常呼叫,沒在核心中定義的控制元件在執行時會扔出類找不到的異常。比如水波圖形RippleDrawable和向量圖形VectorDrawable,這兩個控制元件在Android5.0之後的系統核心中提供,所以只有系統版本不低於5.0的手機才能使用它們,執行4.*系統的手機是無法正常呼叫這兩個控制元件的。

2、第二類是v4相容庫提供的控制元件,位於SDK的android-support-v4.jar中。
v4庫預設會被編譯進App的安裝包,所以它不需要系統核心支援,可直接執行在4.0之後的所有系統上,並且App工程無需手工匯入v4庫。使用v4控制元件唯一需要注意的地方,是佈局檔案中要引用完整路徑的控制元件名稱,如抽屜佈局android.support.v4.widget.DrawerLayout、下拉重新整理佈局android.support.v4.widget.SwipeRefreshLayout等等。

3、第三類是v7相容庫和design庫,它們有各自的庫工程,開發者要在App工程中手工匯入用到的相容庫。
v7與design庫匯入App工程後,編譯出來的App即可相容4.*的系統。使用v7與design庫的控制元件,類似於使用自定義控制元件,不但要在佈局檔案中引用完整路徑的控制元件名稱,還要在根佈局宣告名稱空間(即新增屬性xmlns:app="http://schemas.android.com/apk/res-auto"),然後方可使用這些控制元件的自定義屬性。這部分控制元件數量最多,實現的介面特效最豐富,而且互相之間存在依賴關係,如design庫依賴於appcompat-v7庫,部分design控制元件如NavigationView還依賴於recyclerview-v7庫,所以若要正確使用design庫的控制元件,往往得同時匯入好幾個相關的相容庫。


Android5.0和6.0之後補充了這麼多新控制元件,自然有部分老控制元件變過時了,下面就列舉部分新舊控制元件的替代關係:
Toolbar
:替代ActionBar
RecyclerView:替代ListView和GridView
NestedScrollView:替代ScrollView
Snackbar:替代Toast
FloatingActionButton:替代ImageButton
TextInputEditText:替代EditText
camera2家族:替代Camera





點此檢視Android開發筆記的完整目錄