删除操作栏阴影

时间:2015-07-15 06:42:34

标签: android android-actionbar android-actionbar-compat

我想删除appcompat操作栏下方显示的阴影,以便操作栏的背景完全透明。

这是我的主题和动作栏样式:

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

    <item name="android:actionBarStyle">@style/TransparentActionBar</item>
    <item name="android:windowActionBarOverlay">true</item>

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

</style>

<!-- Transparent Action Bar Style -->
<style name="TransparentActionBar"
    parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@android:color/transparent</item>

    <!-- Support library compatibility -->
    <item name="background">@android:color/transparent</item>
    <item name="elevation">0dp</item>
</style>

我的最低API级别为16

我已尝试过多种解决方案,包括:

  • 将高程设置为0dp仅适用于Lollipop设备。
  • 我找不到&#34;资源未找到&#34;如果我尝试使用windowContentOverlay
  • ,则会出错
  • 将根视图的背景设置为白色或透明的颜色不起作用

我一直试图让这个工作在4.4.4上无济于事。在API级别21以下是不可能的?

修改

事实证明,windowContentOverlay仅适用于android前缀:

<item name="android:windowContentOverlay">@null<item/>

尝试在没有前缀的情况下定义它会导致资源未找到错误(此错误指向带有前缀的错误)。老实说,我不明白为什么会这样。我只能假设appcompat不支持windowContentOverlay属性。

1 个答案:

答案 0 :(得分:1)

将windowContentOverlay设置为将在操作栏下绘制的drawable。如果您不想要阴影,请将其设置为null,如下所示:

<item name="android:windowContentOverlay">@null</item>

<item name="windowContentOverlay">@null</item>

这适用于API级别16及以上。