page.title=Duy trì Tính tương thích @jd:body
Một số tính năng của Material Design như chủ đề Material và chuyển tiếp hoạt động tùy chỉnh chỉ sẵn có trên Android 5.0 (API mức 21) trở lên. Tuy nhiên, bạn có thể thiết kế ứng dụng của mình để tận dụng những tính năng này khi chạy trên thiết bị hỗ trợ material design mà vẫn tương thích với thiết bị đang chạy các bản phát hành Android trước đây.
Bạn có thể cấu hình ứng dụng của mình để sử dụng chủ đề material trên những thiết bị hỗ trợ và chuyển về chủ đề cũ hơn trên những thiết bị đang chạy phiên bản Android cũ hơn:
res/values/styles.xml
.res/values-v21/styles.xml
.Lưu ý: Nếu ứng dụng của bạn sử dụng chủ đề material nhưng không cung cấp chủ đề thay thế bằng cách này, ứng dụng của bạn sẽ không chạy trên phiên bản Android trước 5.0.
Nếu những bố trí mà bạn thiết kế theo hướng dẫn về material design không sử dụng bất cứ thuộc tính XML mới nào được giới thiệu trong Android 5.0 (API mức 21), chúng sẽ hoạt động trên các phiên bản Android trước đó. Nếu không, bạn có thể cung cấp bố trí thay thế. Bạn cũng có thể cung cấp bố trí thay thế để tùy chỉnh diện mạo ứng dụng của mình trên các phiên bản Android cũ hơn.
Tạo tệp bố trí của bạn cho Android 5.0 (API mức 21) bên trong res/layout-v21/
và
tệp bố trí thay thế của bạn cho các phiên bản Android cũ hơn trong res/layout/
.
Ví dụ, res/layout/my_activity.xml
là một bố trí thay thế cho
res/layout-v21/my_activity.xml
.
Để tránh lặp mã, hãy định nghĩa kiểu của bạn bên trong res/values/
, sửa đổi
các kiểu trong res/values-v21/
cho các API mới và sử dụng kế thừa kiểu, định nghĩa
kiểu cơ bản trong res/values/
và kế thừa từ những kiểu trong res/values-v21/
.
Thư viện Hỗ trợ v7 r21 và cao hơn gồm những tính năng material design sau:
Theme.AppCompat
.Theme.AppCompat
.Chủ đề Theme.AppCompat
cung cấp các kiểu phong cách material design cho những widget này:
Để có được các kiểu phong cách material design và tùy chỉnh bảng màu bằng Thư viện Hỗ trợ v7
của Android, hãy áp dụng một trong các chủ đề 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>
Widget {@link android.support.v7.widget.RecyclerView} và {@link android.support.v7.widget.CardView} sẵn có trong các phiên bản Android cũ hơn thông qua Thư viện Hỗ trợ v7 của Android với những hạn chế sau:
Để sử dụng những tính năng này trong các phiên bản Android trước 5.0 (API mức 21), hãy thêm Thư viện Hỗ trợ v7 của Android vào dự án của bạn như một Phần phụ thuộc Gradle:
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.+' }
Những tính năng sau chỉ sẵn có trong Android 5.0 (API mức 21) trở lên:
Để duy trì tính tương thích với các phiên bản Android cũ hơn, hãy kiểm tra {@link android.os.Build.VERSION#SDK_INT version} vào thời gian chạy trước khi bạn gọi ra API cho bất cứ tính năng nào sau đây:
// 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 }
Lưu ý: Để quy định ứng dụng của bạn hỗ trợ những phiên bản Android nào,
hãy sử dụng thuộc tính android:minSdkVersion
và android:targetSdkVersion
trong tệp bản kê khai của bạn. Để sử dụng các tính năng của material design trong Android 5.0, hãy đặt
thuộc tính android:targetSdkVersion
thành 21
. Để biết thêm thông tin, hãy xem hướng dẫn
<uses-sdk> API
.