Android 在API 21+中为弹出菜单添加阴影;

Android 在API 21+中为弹出菜单添加阴影;,android,android-layout,Android,Android Layout,这已经发布了很多次,但现有的解决方案似乎都不能与API 21+一起使用。默认弹出窗口的背景色与布局的默认背景色完全相同 是它看起来的样子(弹出窗口在gridview上,但没有明显的“边界”,看起来有点不对劲) 类似的东西是理想的,也就是说,有合适的材质设计阴影。通过工具栏弹出菜单可以实现这一点。没有“正常”弹出菜单 老问题试图实现同样的目标,但给出的解决方案现在不再有效: <style name="AppTheme" parent="android:Theme.Holo.Light">

这已经发布了很多次,但现有的解决方案似乎都不能与API 21+一起使用。默认弹出窗口的背景色与布局的默认背景色完全相同

是它看起来的样子(弹出窗口在gridview上,但没有明显的“边界”,看起来有点不对劲)

类似的东西是理想的,也就是说,有合适的材质设计阴影。通过工具栏弹出菜单可以实现这一点。没有“正常”弹出菜单

老问题试图实现同样的目标,但给出的解决方案现在不再有效:

<style name="AppTheme" parent="android:Theme.Holo.Light">
<item name="android:popupMenuStyle">@style/popupMenuStyle</item>
</style>
<style name="popupMenuStyle" parent="@android:style/Widget.PopupMenu">
<item name="android:popupBackground">@color/bgPopumMenu</item>
</style>
因此,我甚至无法更改弹出菜单的背景色,更不用说有一个合适的材质设计阴影


如何给弹出菜单一个阴影?或者,我至少应该如何使用自定义背景绘图(使用它我可以将其放入一个9面片阴影中)

将弹出菜单样式添加到应用主题: @样式/弹出菜单


@android:彩色/白色
manifest.xml:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
.............
</application>

棒棒糖+需要单独的款式。
创建另一个资源:
res/values-v21/styles.xml

在此处添加弹出式样式并指定所需的标高:

<style name="PopupMenu" parent="@android:style/Widget.PopupMenu">
    <item name="android:popupBackground">@android:color/white</item>
    <item name="android:popupElevation">20dp</item>
</style>

@android:彩色/白色
20dp

就这样。

如果你看到我的问题,你会发现我已经试过了。它不工作(至少在API 21+中)
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
.............
</application>
<style name="PopupMenu" parent="@android:style/Widget.PopupMenu">
    <item name="android:popupBackground">@android:color/white</item>
    <item name="android:popupElevation">20dp</item>
</style>