首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在API 21+中给21+一个阴影

在API 21+中给21+一个阴影
EN

Stack Overflow用户
提问于 2016-05-17 08:15:04
回答 2查看 1.6K关注 0票数 1

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

就是它看上去的样子(弹出窗口在一个网格视图上,但它没有明显的“边界”,看起来有点偏离)。

类似的东西是理想的,也就是说,有一个合适的材料设计阴影。有一个用工具栏弹出菜单来完成这个任务的解决方案。不是用“正常”的PopupMenu。

的老问题是试图完成同样的任务,但是,给定的解决方案现在不再起作用:

代码语言:javascript
复制
<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>

此外,也不设置自定义上下文包装器:

代码语言:javascript
复制
 Context wrapper = new ContextThemeWrapper(getContext(), R.style.PopupMenu);
 PopupMenu popup = new PopupMenu(wrapper, anchorView);

所以,我甚至无法改变弹出菜单的背景色,更不用说有一个合适的材质设计阴影了。

如何给PopupMenu一个阴影?或者我如何至少使用自定义的背景绘图(使用它我可以放入一个9补丁阴影)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-06 07:46:01

Lollipop+需要一个单独的样式。

创建另一个资源:res/values-v21/styles.xml

添加弹出样式并指定所需的高度:

代码语言:javascript
复制
<style name="PopupMenu" parent="@android:style/Widget.PopupMenu">
    <item name="android:popupBackground">@android:color/white</item>
    <item name="android:popupElevation">20dp</item>
</style>

就这样。

票数 2
EN

Stack Overflow用户

发布于 2016-05-17 09:56:17

将popupMenu样式添加到ur AppTheme:@AppTheme/PopupMenu

代码语言:javascript
复制
<style name="PopupMenu" parent="@android:style/Widget.PopupMenu">
    <item name="android:popupBackground">@android:color/white</item>
</style>

manifest.xml:

代码语言:javascript
复制
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
.............
</application>

PS:答案为从这里开始

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37270656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档