Android: Theme.Material.Light требует уровня API 21 (текущий минимум 8)
Я хочу использовать Material Theme в своем приложении с минимальной версией sdk 8. Согласно документам - "Тема материала доступна только на Android 5.0 (API уровня 21) и выше. Библиотеки поддержки V7 предоставляют темы с материалами стили дизайна для некоторых виджетов и поддержку настройки цветовой палитры". Означает ли это, что я могу использовать его, если я добавлю V7 Support Libarary в свой проект? Потому что после добавления этой библиотеки я получил следующую ошибку:
android: Theme.Material.Light требует уровня API 21 (текущий минимум 8).
Или, может быть, я понял что-то не так? Любое предложение будет оценено по достоинству. Спасибо заранее.
Ответы
Ответ 1
Для этого вам нужно иметь папку с двумя значениями.
Один, который существует по умолчанию, а другой, вы должны создать в своей папке res и называть его значениями-v21.
В папке значений по умолчанию, в styles.xml, используйте тему, отличную от темы Material
И в созданной вами папке styles.xml значений-v21 используйте тему Материал.
Телефон Android автоматически подберет стили .xml, которые он поддерживает. Если телефон поддерживает конструкцию материалов (устройства Lollipop), ваше приложение будет использовать материальную тему (папка значений -21).
если это не так (в телефонах, работающих на старых версиях Android), будет использоваться папка значений по умолчанию.
Ответ 2
Вам нужно использовать тему android:theme="@style/Theme.AppCompat.Light"
, чтобы получить материальный дизайн.
Удостоверьтесь, что ваш минус равен 8, а ваша цель равна 21. И вы используете инструменты сборки /sdk 21.
Ответ 3
Педро Оливейра прав относительно Theme.AppCompat
, но в этом ответе отсутствует какая-то существенная информация.
Сообщение в блоге под названием appcompat v21: дизайн материалов для устройств Pre-Lollipop! Криса Банеса из Команда Android, вероятно, лучше всего отвечает на вопрос о том, как получить Material Theme для уровней API до 21 года.
Подводя итог, вам нужно appcompat-v7
зависимость:
dependencies {
...
compile "com.android.support:appcompat-v7:21.0.3"
}
После этого для темной версии в качестве базовой темы используйте:
<style name="AppTheme" parent="Theme.AppCompat">
</style>
И для легкой версии:
<style name="AppTheme" parent="Theme.AppCompat.Light">
</style>
И если вы новичок в AppCompat, есть вещи, которые вам нужно знать, например:
Все ваши действия должны простираться от ActionBarActivity *. Он расширяет из FragmentActivity из библиотеки поддержки v4, чтобы вы могли продолжить для использования фрагментов.
* NB: в последнее время ActionBarActivity устарела в пользу AppCompatActivity.
Но вы действительно должны прочитать весь раздел "Настройка" этого блога! (Информация о панели инструментов и панели действий и некоторые из комментариев также вы не должны пропустить.)