我想删除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
我已尝试过多种解决方案,包括:
我一直试图让这个工作在4.4.4上无济于事。在API级别21以下是不可能的?
修改
事实证明,windowContentOverlay仅适用于android前缀:
<item name="android:windowContentOverlay">@null<item/>
尝试在没有前缀的情况下定义它会导致资源未找到错误(此错误指向带有前缀的错误)。老实说,我不明白为什么会这样。我只能假设appcompat不支持windowContentOverlay属性。
答案 0 :(得分:1)
将windowContentOverlay设置为将在操作栏下绘制的drawable。如果您不想要阴影,请将其设置为null,如下所示:
<item name="android:windowContentOverlay">@null</item>
和
<item name="windowContentOverlay">@null</item>
这适用于API级别16及以上。