android:windowActionBarOverlay&;android:actionBarStyle需要api级别11

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

我正在制作一个android应用程序,并使用android-support-v7-appcompat确保我的应用程序支持android 2.2版及更高版本的操作栏

我需要使动作栏覆盖并使用半透明背景,因此我已将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>
问题在于以下两行代码需要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>