You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Popup Menu双层背景修复:保留圆角深色背景

修复方案

双层背景是因为你使用了AppCompat的PopupMenu样式作为父类,但主题基于Material Components,两者背景渲染机制冲突导致叠加。按以下步骤修改即可解决:

  1. 创建带圆角的Popup背景Drawable
    在drawable目录下新建popup_menu_bg_dark.xml,定义带圆角的深色背景:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/dark"/>
    <corners android:radius="16dp"/> <!-- 可根据需求调整圆角大小 -->
</shape>
  1. 更新PopupMenu样式
    将popup_menu_dark的父类改为Material Components对应的样式,同时引用上述Drawable作为背景,并去除多余阴影:
<style name="popup_menu_dark" parent="Widget.MaterialComponents.PopupMenu">
    <item name="android:popupBackground">@drawable/popup_menu_bg_dark</item>
    <item name="elevation">0dp</item>
    <item name="android:elevation">0dp</item>
</style>
  1. 确保主题关联正确样式
    在objectsmeasure_dark主题中,保留popupMenuStyle属性(兼容低版本可同时保留android:popupMenuStyle),确保指向修改后的样式即可。

修改完成后,PopupMenu将只显示一层带圆角的深色背景,解决双层叠加问题。


内容的提问来源于stack exchange,提问作者user19516326

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 02:30:43