覆盖Action Bar不起作用

Kru*_*hah 16 android android-layout android-actionbar android-styles

我正在关注覆盖行动栏的官方开发人员指南.

style.xml的如下:

<!-- Base application theme. -->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>

<style name="AppTheme" parent="AppBaseTheme">
    <item name="actionBarStyle">@style/CustomActionBarTheme</item>

</style>

<style name="CustomActionBarTheme"
    parent="@android:style/Theme.Holo">
    <item name="android:windowActionBarOverlay">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我的midSdkVersion是14,预期输出与官方指南相似:在此输入图像描述.

相反,在我的情况下,输出是: 在此输入图像描述

(我已将背景颜色设置为活动...但它不会覆盖操作栏.)

如果我做的任何事都错了,请帮助我.

编辑:

我想在airnb和许多其他应用程序中使用类似的动作栏.任何人都可以给我完整的答案吗?

在此输入图像描述

Sim*_*mas 35

我在你的代码中看到了一些误解:

  1. windowActionBarOverlay应该在你的主题上指明而不是你ActionBar的风格.
  2. 没有理由使用Holo支持主题.这只会破坏您的支持能力.

试试这个:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="android:windowActionBarOverlay">true</item>
    <!--For compatibility-->
    <item name="actionBarStyle">@style/MyActionBar</item>
    <item name="windowActionBarOverlay">true</item>
</style>

<color name="transparent_black">#80000000</color>
<style name="MyActionBar" parent="Widget.AppCompat.ActionBar.Solid">
    <item name="android:background">@color/transparent_black</item>
    <!--For compatibility-->
    <item name="background">@color/transparent_black</item>
</style>
Run Code Online (Sandbox Code Playgroud)

  • 即使在API版本为23的设备上运行,"兼容性"部分也可以解决这个问题.由android studio生成的默认全屏活动没有添加! (2认同)