我正在尝试创建一个带有完全透明的 appcompat 操作栏的应用主题。我正在尝试使用 windowContentOverlay 移除操作栏下方的阴影,但是无论出于何种原因,我都无法使用此属性进行构建。 elevation 属性仅适用于 lollipop+ 设备,我的最低 API 级别是 16。
这里有什么问题?
错误:(12, 29) 找不到与给定名称匹配的资源:attr 'windowContentOverlay'。
<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>
<item name="android:windowContentOverlay">@null</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/TransparentActionBar</item>
<item name="windowActionBarOverlay">true</item>
<item name="windowContentOverlay">@null</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>
</style>
最佳答案
从评论部分复制了 Drew 的回答。
事实证明,windowContentOverlay 仅适用于 android 前缀:<item name="android:windowContentOverlay">@null<item/>
.
尝试在没有前缀的情况下定义它会导致资源未找到错误(无论出于何种原因,此错误都指向带有前缀的资源)。
老实说,我不明白为什么会这样。我只能假设 appcompat 不支持 windowContentOverlay 属性。
关于android - windowContentOverlay "no resource found that matches the given name",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31484426/