Skip to content

Most visited

Recently visited

navigation

Обеспечение совместимости

Некоторые возможности Material Design, такие как "материальные" темы и настраиваемые переходы между операциями, доступны только в Android 5.0 (уровень API 21) и более поздних версиях. Однако приложения можно разработать таким образом, чтобы эти функции были доступны при запуске на устройствах, поддерживающих Material Design, сохранив при этом совместимость приложений с устройствами под управлением более ранних выпусков Android.

Определение альтернативных стилей

Приложение можно настроить так, чтобы тема Material Design использовалась при работе на поддерживающих эту технологию устройствах, а при запуске приложения на устройствах с более ранними версиями Android происходило переключение на старые варианты тем. Ниже описан порядок такой настройки.

  1. В файле res/values/styles.xml определите тему, наследующую более старой теме (например, Holo).
  2. В файле res/values-v21/styles.xml определите тему с таким же именем, наследующую теме Material Design.
  3. В файле манифеста укажите эту тему как тему приложения.

Примечание. Если в приложении используется тема Material Design, но отсутствует определенная описанным способом альтернативная тема, это приложение не будет запускаться на устройствах под управлением версий Android, предшествующих 5.0.

Предоставление альтернативных макетов

Если в создаваемых согласно рекомендациям Material Design макетах отсутствуют новые атрибуты XML, представленные в Android 5.0 (уровень API 21), такие макеты поддерживаются в предыдущих версиях ОС Android. В противном случае необходимо предоставить альтернативные макеты. Можно также предоставить альтернативные макеты для настройки внешнего вида приложения в более ранних версиях Android.

Создайте файлы макета для Android 5.0 (уровень API 21) в res/layout-v21/, а также файлы альтернативного макета для более ранних версий Android (в res/layout/). Например, res/layout/my_activity.xml — это альтернативный макет для res/layout-v21/my_activity.xml.

Чтобы сделать код более компактным, определите стили в res/values/, измените стили в res/values-v21/ для новых API, а также используйте наследование стилей, определив основные стили в res/values/ и задав наследование из них в res/values-v21/.

Использование вспомогательной библиотеки

Вспомогательные библиотеки v7 r21 и более поздних версий включают следующие функции Material Design:

Системные виджеты

В темах Theme.AppCompat имеются стили Material Design для следующих виджетов:

Цветовая палитра

Чтобы получить стили Material Design и настроить цветовую палитру с помощью вспомогательной библиотеки Android v7, примените одну из следующих тем 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 имеются в более ранних версиях Android. Они находятся во вспомогательной библиотеке Android v7, и для них существуют следующие ограничения.

Зависимости

Чтобы воспользоваться этими возможностями в версиях Android, предшествующих 5.0 (уровень API 21), включите в свой проект вспомогательную библиотеку Android v7 как зависимость 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.+'
}

Проверка версии системы

Следующие функции доступны только в Android 5.0 (уровень API 21) и более поздних версиях:

Чтобы обеспечить совместимость приложения с более ранними версиями Android, проверьте системный параметр version во время запуска, прежде чем вызвать API любой из этих функций:

// 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
}

Примечание. Чтобы указать версии Android, поддерживаемые вашим приложением, установите атрибуты android:minSdkVersion и android:targetSdkVersion в файле манифеста. Чтобы использовать функции Material Design, которые имеются в Android 5.0, задайте для атрибута android:targetSdkVersion значение 21. Дополнительные сведения см. в руководстве по API <uses-sdk>.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Следите за новостями от Google Developers в WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)