Я разрабатываю приложение для Android версии 4.0 и выше. Я просто обновился до appcompat 22.2.0, но я вижу все эти ссылки на ...- v21/v22.xml в Интернете. Для чего они используются? Они имеют значение? Заранее спасибо!Что такое использование ...- v21.xml?
ответ
У меня была themes.xml в папке значения-V21
res/values-v21/
каталог содержит ресурсы, которые будут использоваться, когда устройство, которое работает приложение на API Level 21 или выше. Если устройство работает на более ранней версии Android, каталог res/values-v21/
будет проигнорирован.
Для чего они предназначены? Они имеют значение?
Они предназначены для предоставления различных версий ресурсов для различных версий Android.
В случае файла themes.xml
устройство уровня API 21+ может иметь тему, которая наследуется от Theme.Material
. Однако эта тема не существует на более старых устройствах. Если у вас есть тема в res/values/
, которая пытается ссылаться на Theme.Material
, ваше приложение выйдет из строя на этих старых устройствах. Таким образом, вместо того, вы поставите тему в res/values/
, который будет работать на всех устройствах, которые вы поддерживаете (например, Theme.Holo
для minSdkVersion
11 или выше), и переназначения, что тема в res/values-v21/
, чтобы использовать вместо Theme.Material
.
Вы можете видеть, что в this sample app, где Theme.Apptheme
(тема моего приложения в) наследуется от Theme.Holo
в res/values/
и наследуется от Theme.Material
в res/values-v21/
. Какая версия Theme.Apptheme
используется во время выполнения, зависит от версии Android, которую имеет устройство.
Это объяснение имеет большой смысл, спасибо. В моем приложении я ссылаюсь на стиль, который имеет «Theme.AppCompat.Light» в качестве родителя, означает ли это, что appcompact позаботится обо всей этой обратной совместимости, так что мне не нужно создавать xml в папке значений-v21 ? – Jdruwe
@Jdruwe: 'Theme.AppCompat' и его дочерние элементы (например,' Theme.AppCompat.Light') возвращаются к уровню API 7, а 'appcompat-v7' обрабатывает всю работу по обратной совместимости, связанную с этой темой. – CommonsWare
@Jdruwe Нет, вам это не нужно. Вы можете создать xml в папке значений (не в значениях-v21) – krystian71115
Вы имеете в виду значения-v21? values-v21 содержит ресурсы для применения на android api 21 и выше. – krystian71115
Пример: панель действий добавлена в api 11. Чтобы отобразить панель действий, вы можете установить другой стиль в значениях-v11. – krystian71115
Например, у меня был этот theme.xml в папке values-v21 при следующем учебнике: http://pastebin.com/g0GrFyQT. Я не уверен, действительно ли это мне нужно или нет: S – Jdruwe