【问题标题】:Remove action bar shadow移除操作栏阴影
【发布时间】:2015-07-15 06:42:33
【问题描述】:

我想去掉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 设备。
  • 如果我尝试使用 windowContentOverlay,我会收到“找不到资源”错误
  • 将根视图的背景设置为白色或透明等颜色不起作用

我一直试图让它在 4.4.4 上运行,但无济于事。 API 级别 21 以下是不可能的吗?

编辑:

原来windowContentOverlay只适用于android前缀:

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

尝试在没有前缀的情况下也定义它会导致找不到资源错误(无论出于何种原因,此错误都会指向带有前缀的错误)。老实说,我不明白为什么会发生这种情况。我只能假设 appcompat 不支持 windowContentOverlay 属性。

【问题讨论】:

  • 在 getSupportActionBar() 上设置高度;
  • 请阅读整个问题:“将高度设置为 0dp 仅适用于 Lollipop 设备。”

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


【解决方案1】:

将 windowContentOverlay 设置为将在操作栏下绘制的可绘制对象。如果您不希望阴影将其设置为 null,如下所示:

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

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

这适用于 API 级别 16 及更高级别。

【讨论】:

  • 就像我说的那样,当我尝试使用带有或不带有 android 前缀的 windowContentOverlay 时,出现“找不到与给定名称匹配的资源”错误。
  • windowContentOverlay 绝对是要走的路。您能否确保它是在应用程序/活动主题中设置的,而不是在操作栏样式中?你能在设置的地方发布代码吗?
  • 这就是我尝试过的。这些属性是在上面的“基本应用程序主题”中添加的,但构建总是失败,找不到这些资源。
猜你喜欢
  • 1970-01-01
  • 2012-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-24
  • 1970-01-01
  • 1970-01-01
  • 2015-10-08
相关资源
最近更新 更多