ActionBar覆盖不起作用

时间:2015-07-24 07:34:46

标签: android android-actionbar

我使用Developer Guide启用ActionBar Overlaying,但无效

操作栏不透明,布局位于ActionBar

下方

结果: Result

预期:

Expected

风格

    <!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">

    <item name="android:actionBarStyle">@style/CustomActionBarTheme</item>

    <!-- Support library compatibility -->
    <item name="actionBarStyle">@style/CustomActionBarTheme</item>
</style>

<style name="CustomActionBarTheme" parent="Theme.AppCompat">

    <item name="android:windowActionBarOverlay">true</item>

    <!-- Support library compatibility -->
    <item name="windowActionBarOverlay">true</item>
</style>

main_layout

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#AABBCC"
    tools:context=".MainActivity">

</RelativeLayout>

1 个答案:

答案 0 :(得分:2)

您需要将Appcompat主题中的windowActionBarOverlay属性设置为true,而您正在绘制的relativeLayout仅从它知道的顶部开始,它位于操作栏下方。它需要在主样式中设置,而不是在actionbarstyle

中设置

然后你可以将toolbarstyle中的android:background设置为透明以获得所需的效果

要显示我们在项目中使用的一些代码,以获得透明的工具栏:

<style name="ToolBarStyle.Transparent" parent="">
    <item name="popupTheme">@style/ThemeOverlay.AppCompat.Dark</item>
    <item name="android:background">@android:color/transparent</item>
    <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowActionBarOverlay">true</item>
    <item name="windowActionBarOverlay">true</item>
</style>

介意,工具栏样式设置在xml的工具栏上,稍后将其设置为操作栏。