Android: actionBarStyle требует уровня API 11
При использовании ActionBarSherlock
в xml по адресу:
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
Я получил эту ошибку:
android:actionBarStyle requires API level 11 (current min is 8) error
Я использую его для обратного переноса моего приложения с помощью панели действий на 2.2 устройства.
Как использовать их вместе:
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
Ответы
Ответ 1
Вы должны использовать только:
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
так как вы можете получить ошибку, у вас есть android:actionBarStyle
, доступный на уровне API 11.
Если вы хотите, чтобы стиль ActionBar
выглядел одинаково на всех уровнях API, вам нужно создать разные папки для выбранного уровня API и создать новые файлы style.xml
/themes.xml
в этих папках.
Например:
- res
-- values
-- styles.xml
-- themes.xml // API LEVEL 8+
-- values-v11
-- styles.xml
-- themes.xml // API LEVEL 11+
-- values-v14
-- styles.xml
-- themes.xml // API LEVEL 14+
Вторая вещь, о которой я могу думать, - быть осторожным, какие темы вы включаете в свой текущий на разных уровнях API.
Например, для уровня API 8: вы будете использовать @style/Theme.Sherlock.Light.DarkActionBar
, и вам придется использовать только actionBarStyle
. При стилизации панели действий для уровня API 14+ вам не понадобится actionBarStyle
, потому что вы, вероятно, установите тему Holo.Light
как родительскую для вашей текущей, поэтому в этой ситуации вам придется использовать android:actionBarStyle
.
Ответ 2
Другой вариант - использовать атрибут tools:targetApi
, для которого требуется пространство имен tools
. Это действует аналогично аннотации @TargetApi
, которую вы можете использовать в java файлах.
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="MyThemes.MyTheme">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle" tools:targetApi="11">@style/Widget.Styled.ActionBar</item>
</style>
</resources>
Обратите внимание на xmlns:tools="http://schemas.android.com/tools"
в теге <resources>
, как это требуется.
Ответ 3
Вы можете просто выбрать ошибки в Eclipse и нажать клавишу "Удалить".
Затем просто запустите проект, и он будет работать.
Вы удаляете тезисы ошибок каждый раз, когда вы изменяете свой XML.
Ответ 4
Это зависит от того, какую версию SDK вы хотите настроить:
Целевые объекты ниже 11:
На вашем AndroidManifest.xml
используйте:
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="x" android:maxSdkVersion="10"/>
x что-нибудь между 8-10 (зависит от вашего кода)
В вашем стиле используйте:
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
Настроить любое устройство:
На вашем AndroidManifest.xml
используйте:
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />
16, используемый в ActionBarSherlock
, может быть любым большим или равным 11 (зависит от вашего кода)
В вашем стиле используйте оба:
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
1-й для темы ActionBarSherlock
, а второй предназначен для использования той же темы в устройствах Android, которые уже поддерживают ActionBar
Изменить: Очистить предупреждения Lint (красная подчеркивание в файле XML, который может отображаться):
![Clear Lint Warnings]()