Использование дизайна материалов для Android L на KitKat
Чтение раздела совместимости в Android L Developer Preview (http://developer.android.com/preview/material/compatibility.html) Я видел, что я могу создать APP, используя L- sdk, а также сможете запускать его на старшем sdk (например, KitKat).
Я создал новый проект с помощью Android L sdk и настроил "build.gradle", как сказано в этом сообщении: Android Studio: Failure [INSTALL_FAILED_OLDER_SDK].
Я пробовал обе конфигурации:
-
тот, который был предложен в вопросе, который дает мне эту ошибку:
pkg: /data/local/tmp/com.example.{my user name}.materialapp
Failure [INSTALL_FAILED_OLDER_SDK]
-
и тот, который предлагается в ответ, который дает мне ошибку на
<style name="AppTheme" parent="android:Theme.Material.Light"></style>
Я искал другие вопросы в StackOverflow, но я не могу найти никаких решений.
РЕШЕНИЕ:
Android L Предварительный просмотр стиль материала может использоваться только на устройствах, работающих под управлением Android L.
"Совместимость" - это только предварительный просмотр, и он не включен.
Ответы
Ответ 1
Вам нужно создать 2 разных файла styles.xml с тем же именем, которое вы поместите в разные папки.
Первая, пойдет здесь:
res/styles.xml
и не будет смотреть ссылку на тему Material (используйте тему Holo):
было бы примерно так:
<style name="AppTheme" parent="android:Theme.Holo.Light"></style>
Второе пойдет здесь:
res/values-v21/styles.xml
и будет содержать ссылку на новую тему Material и будет иметь:
<style name="AppTheme" parent="android:Theme.Material.Light"></style>
Рамка Android будет автоматически использовать правильный вариант, в зависимости от того, какой API поддерживает устройство (поэтому на устройствах API 21 он будет использовать Material, а на всех других устройствах будет использовать все, что вы определили).
Ответ 2
Это изменилось с момента первоначального ответа, поскольку Google опубликовала лучшую поддержку дизайна материалов в библиотеках AppCompat (которые поддерживают в основном все версии Android).
На этом этапе вы должны использовать эти библиотеки для всех разработок, тогда вы сможете поддерживать связанные с материалами функции во всех своих приложениях.
Вот как это настроить: https://developer.android.com/topic/libraries/support-library/setup.html