Я пытаюсь поддерживать устройства до уровня API 9 с помощью библиотеки AppCompat. Я пытаюсь использовать ActionBar, используя example theme от Google, но он продолжает говорить мне, что любой элемент с именем android: action * requires API level 11 (current min is 9)
. Я нацелен на 18. Если я использую материал непосредственно из примера, почему он ломается? И может ли кто-нибудь помочь мне разобраться, как к теме ActionBar использовать библиотеку AppCompat от уровня API 9?Theming AppCompat ActionBar
ответ
android:action*
В элементах доступен только с API 11 и выше. Чтобы поддерживать разные уровни API, Android содержит различные каталоги values
. Если вы посмотрите на структуру папок вашего проекта, вы, скорее всего, увидите каталоги для res/values
и res/values-11
и, возможно, несколько других. Как вы могли догадаться, 11
означает API 11, что означает, что темы, доступные только в API 11 и выше, должны быть включены здесь. Каталог values
является вашим базовым.
Поэтому для вашего примера вам необходимо разделить файл тем на два разных. Детали, содержащие android:action*
, должны находиться в файле тем в папке values-11
, а остальные могут оставаться в базе values
. Android заботится о том, чтобы автоматически выбрать подходящую тему.
Вы должны действительно прочитать this, особенно части, расположенные внизу, о применении тем. В нем обсуждается, как вы можете применять темы к различным уровням API.
Функция, которую вы пытаетесь использовать, доступна только по API 11 вверх. Вы не сможете использовать устройства, имеющие уровень API 9, как вы хотели.
требует уровень API 11 (ток мин составляет 9)
Вы можете запустить пример в устройствах с Android 3.0 и выше, но для этого вам придется изменить свой файл манифеста minSdkVersion по меньшей мере, 11.
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" />
Я понимаю, что означает ошибка. Я спрашиваю, как обойти это без увеличения моего minSdkVersion. – CaseyB
Попробуйте удалить все элементы с android:action*
и оставить только те, с action*
(без android
имен).
Это работает для меня, но я получил свой стиль от этого замечательного генератора стиля для панели действий: http://jgilfelt.github.io/android-actionbarstylegenerator/
- 1. AppCompat ActionBar theming spinner dropdown
- 2. Theming and AppCompat
- 3. AppCompat ActionBar Цвет фона
- 4. Android настроить AppCompat ActionBar
- 5. SearchView в Actionbar Appcompat
- 6. ActionBar AppCompat подменит
- 7. ProgressBar в ActionBar appcompat
- 8. Невозможно стилизовать ActionBar Android AppCompat
- 9. Показать ImageView позади AppCompat ActionBar
- 10. AppCompat 21 ActionBar ActionMode цвет
- 11. NullPointerExcetption с AppCompat и ActionBar
- 12. AppCompat ActionBar восстанавливает исходный макет
- 13. Панель инструментов AppCompactv21 как ActionBar theming не влияет
- 14. Android Light AppTheme с Dark ActionBar (AppCompat)
- 15. Отсутствует ActionBar после перехода на API21 AppCompat
- 16. Использование ShowcaseView с v7 appcompat ActionBar
- 17. ActionBar с AppCompat actionBarItemBackground не работает
- 18. Change Material Design AppCompat ActionBar Color
- 19. getActionView return null в appcompat 7 actionbar
- 20. Как изменить высоту элемента в AppCompat ActionBar?
- 21. Как заменить Шерлок ActionBar в AppCompat
- 22. Android AppCompat ActionBar MenuItem просмотр настроек
- 23. прозрачный Actionbar с AppCompat-v7 21
- 24. RTL title в Actionbar в Appcompat-v7
- 25. ActionBar фон с использованием AppCompat не показывая
- 26. ActionBar AppCompat изменение индикатора Tab цвет
- 27. Добавление Android AppCompat ActionBar из библиотеки поддержки
- 28. Android: AppCompat V7 смелого названия в ActionBar
- 29. AppCompat v7 r21, изменяющий букву заголовка ActionBar
- 30. Как изменить цвет ActionBar на AppCompat
Что именно ломается? И не имеет значения, на что вы нацеливаетесь, и что имеет значение для вашего минимального уровня API. – Szymon
Я хочу иметь возможность темы Actionbar на уровне API ниже 11. Пример говорит, что он должен работать для 2.1 (API 7) и выше. – CaseyB