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

Android Options Menu上下白色条如何移除或修改颜色?

你需要补充以下几处配置即可消除上下白色条:

  1. 补全square_menu.xml的背景填充配置
    你当前定义的shape只设置了圆角和padding,没有设置填充色,会导致popup容器默认透出底层白色背景,修改为如下代码:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 新增填充色,和item背景色保持一致 -->
    <solid android:color="@color/AraLightBlue"/>
    <corners android:radius="0dp"/>
    <padding
        android:top="0dp"
        android:bottom="0dp"
        />
</shape>
  1. 补充popupTheme的边距消除属性
    在ThemeOverlay.MyTheme中新增以下配置,清除Popup默认的上下边距、阴影、分割线等自带样式:
<style name="ThemeOverlay.MyTheme" parent="ThemeOverlay.AppCompat.Light">
    <item name="android:itemBackground">@color/AraLightBlue</item>
    <item name="android:popupBackground">@drawable/square_menu</item>
    <!-- 以下为新增配置 -->
    <item name="android:popupElevation">0dp</item>
    <item name="android:paddingVertical">0dp</item>
    <item name="android:divider">@null</item>
    <item name="android:listPreferredItemPaddingTop">0dp</item>
    <item name="android:listPreferredItemPaddingBottom">0dp</item>
</style>
  1. 在App全局主题中配置Overflow菜单样式
    多数情况下的白条问题都是因为遗漏了系统级的overflow菜单样式配置,需要在你应用的全局主题(比如Theme.MyApp对应的style)中新增如下配置:
<!-- 加到应用全局主题的item中 -->
<item name="actionOverflowMenuStyle">@style/MyOverflowMenuStyle</item>

<!-- 新增对应的style -->
<style name="MyOverflowMenuStyle" parent="Widget.AppCompat.PopupMenu.Overflow">
    <item name="android:popupBackground">@drawable/square_menu</item>
    <item name="android:paddingVertical">0dp</item>
    <item name="overlapAnchor">false</item>
</style>
  1. 确认配置生效位置
    检查app:popupTheme="@style/ThemeOverlay.MyTheme"是直接配置在Toolbar标签下,而非外层的父容器中。如果你使用的是MaterialComponents主题,把popupTheme的父主题改为ThemeOverlay.MaterialComponents.Light适配性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:36:00