W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
編寫: allenlsy - 原文: https://developer.android.com/training/material/compatibility.html
有些Material Design特性,比如主題和自定義Activits切換效果等,只在Android 5.0 (API level 21) 以上中可用。不過,你仍然可以使用這些特性實現(xiàn)Material Design,并保持對舊版本Android 系統(tǒng)的兼容。
你可以配置你的應用,在支持Material Design的設備上使用Material主題,在舊版本Android上使用舊的主題:
res/values/styles/xml
中定義一個主題繼承自舊主題(比如Holo)res/values-v21/styles.xml
中定義一個同名的主題,繼承自Material 主題AndroidManifest.xml
中,將這個主題設置為應用的主題Note: 如果你的應用設置了一個主題,但是沒有提供備選Style,你可能無法在低于Android 5.0版本的系統(tǒng)中運行應用。
如果你根據(jù)Material Design設計的應用的Layout中沒有使用任何Android 5.0 (API level 21)中新的XML屬性,他們在舊版本Android中就能正常工作。否則,你要提供備選Layout。你可以在備選Layout中定義你的應用在舊版本系統(tǒng)中的界面。
在res/layout-v21/
中定義Android 5.0 (API level 21) 以上系統(tǒng)的Layout,在res/layout
中定義早前版本Android的Layout。比如,res/layout/my_activity.xml
是對于res/layout-v21/my_activity.xml
的一個備選Layout。
為了避免代碼重復,在res/values
中定義style,然后在res/values-v21
中修改新API需要的style。使用style的繼承,在res/values/
中定義父style,在res/values-v21/
中繼承。
v7 support libraries r21 及更高版本包含了以下Material Design 特性:
Theme.AppCompat
主題時, 會得到為一些系統(tǒng)控件準備的 Material Design styleTheme.AppCompat
主題包含調(diào)色板主體屬性RecyclerView
組件用于顯示數(shù)據(jù)集CardView
組件用于創(chuàng)建卡片Palette
類用于從圖片提取主色調(diào)Theme.AppCompat
主題中提供了這些組件的 Material Design style:
要獲取Material Design style,并用v7 support library自定義調(diào)色板,就要應用以下中的一個Theme.AppCompat主題:
<!-- extend one of the Theme.AppCompat themes -->
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
<!-- customize the color palette -->
<item name="colorPrimary">@color/material_blue_500</item>
<item name="colorPrimaryDark">@color/material_blue_700</item>
<item name="colorAccent">@color/material_green_A200</item>
</style>
RecyclerView
和CardView
組件可通過v7 support libraries支持舊版本Android,但有以下限制:
要在Android 5.0之前的版本使用這些特性,需要在項目的Gradle依賴中加入Android v7 support library:
dependencies {
compile 'com.android.support:appcompat-v7:21.0.+'
compile 'com.android.support:cardview-v7:21.0.+'
compile 'com.android.support:recyclerview-v7:21.0.+'
}
以下特性只在Android 5.0 (API level 21) 及以上版本中可用:
要保持向下兼容,請在使用這些特性是,使用以下代碼在運行時檢查系統(tǒng)版本:
// Check if we're running on Android 5.0 or higher
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// Call some material design APIs here
} else {
// Implement this feature without material design
}
Note:要聲明應用支持哪些Android 版本,在manifest文件中使用
android:minSdkVersion
和android:targetSdkVersion
屬性。要在Android 5.0中使用Material Design特性,設置android:targetSdkVersion
屬性為21。更多信息,參見<uses-sdk>
API指南。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: