Я делаю Android-приложение и использую android-support-v7-appcompat, чтобы убедиться, что мое приложение поддерживает панели действий с версии 2.2 и выше.android: windowActionBarOverlay & android: действияBarStyle требует api level 11
мне нужно сделать накладку панели действий и использовать полупрозрачный фон, так что я изменил styles.xml к этому коду:
<resources>
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
<!-- TRANSLUCENT THEME -->
<style name="TranslucentAB" parent="Theme.AppCompat.Light">
<item name="windowActionBarOverlay">true</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:actionBarStyle">@style/BlackBar</item>
<item name="actionBarStyle">@style/BlackBar</item>
</style>
<!-- TRANSLLUCENT COLOR STYLE -->
<style name="BlackBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/halfblack</item>
<item name="background">@drawable/halfblack</item>
</style>
</resources>
и модифицированный файл манифеста, чтобы адаптировать новый ActionBar как:
android:theme="@style/TranslucentAB"
проблема заключается в том, что следующие две строки кода требуется уровень API 11 и выше:
<item name="android:windowActionBarOverlay">true</item>
<item name="android:actionBarStyle">@style/BlackBar</item>
, но мне нужно поддерживать API уровня 8 и выше. Если я удалю эти две строки, приложение отлично работает на Android 2.2 с черной полупрозрачной панелью действий. Но если я запустил приложение в Android 4.3, приложение запускается с сплошной белой панелью действий. halfblack - это всего лишь файл png в папке с возможностью скачивания с 70% черного цвета.
Спасибо за ответ Грега, но это проблема. Если я сделаю так, как вы сказали, чем оверлей, работает только в Android 2.2, а не в 4.3, поэтому я должен использовать android: windowsActionBarOverlay. Я должен вручную удалить ошибки lint, вызванные этим, а затем запустить приложение, чтобы поддерживать наложения в Android 3.0 и выше. Есть ли способ подавить ошибки api в XML? – Rakesh
Хммм это ваша тема, вытекающая из Theme.AppCompat? (Должен быть). И вы должны использовать windowActionBarOverlay без андроида: префикс. Вы правы, другой из них приведет к ошибкам api, которые так же разработаны. –
Найдено решение моей проблемы: я должен сделать отдельный styles.xml в разрешении/значение-v11 поддерживать такую же функциональность в Android 3.0 и выше – Rakesh