android:windowActionBarOverlay&;android:actionBarStyle需要api级别11
我正在制作一个android应用程序,并使用android-support-v7-appcompat确保我的应用程序支持android 2.2版及更高版本的操作栏 我需要使动作栏覆盖并使用半透明背景,因此我已将styles.xml修改为以下代码:android:windowActionBarOverlay&;android:actionBarStyle需要api级别11,android,Android,我正在制作一个android应用程序,并使用android-support-v7-appcompat确保我的应用程序支持android 2.2版及更高版本的操作栏 我需要使动作栏覆盖并使用半透明背景,因此我已将styles.xml修改为以下代码: <resources> <style name="AppBaseTheme" parent="android:Theme.Light"> <!-- Theme cu
<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>
问题在于以下两行代码需要API级别11及以上:
<item name="android:windowActionBarOverlay">true</item>
<item name="android:actionBarStyle">@style/BlackBar</item>
true
@样式/黑条
但我需要API级别8及以上的支持。如果我删除这两行,应用程序在Android 2.2上运行良好,带有黑色半透明的操作栏。但如果我在安卓4.3中运行该应用程序,该应用程序会启动一个纯白的动作条。halfblack只是drawable文件夹中的一个png文件,颜色为70%黑色。要将操作栏覆盖层与支持库一起使用,请执行以下操作:
<!-- Support library compatibility -->
<item name="windowActionBarOverlay">true</item>
真的
请注意样式名称如何不包含android:前缀。找到了我的问题的解决方案:
我必须在res/values-v11中创建单独的styles.xml,以支持android 3.0及以上版本中的相同功能感谢您回复greg,但这就是问题所在。如果我像你说的那样做,那么overlay只在android 2.2中工作,而在4.3中不工作,这就是为什么我必须使用android:windowsActionBarOverlay。我必须手动删除由此导致的lint错误,然后运行该应用程序,以支持android 3.0及更高版本中的覆盖。有没有办法消除XML中的api错误?Hmmm是从theme.AppCompat派生的主题?(应该是)。您应该只使用windowActionBarOverlay,而不使用android:前缀。你是对的,另一个会导致api错误,这是设计的。找到了解决我问题的方法:我必须在res/values-v11中创建单独的styles.xml,以支持android 3.0和upworks中的相同功能
<!-- Support library compatibility -->
<item name="windowActionBarOverlay">true</item>