【发布时间】: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