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

如何修改Android Options Menu顶部与底部栏的颜色?

选项菜单栏问题

选项菜单栏

我尝试了所有方法来更改或移除这些栏,但都无法消除。

styles.xml 代码

<resources>
    <style name="AppTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <item name="android:fontFamily">@font/sequel100black45</item>
        <item name="android:statusBarColor">@color/my_grey</item>
        <item name="android:windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:textSize">12sp</item>
        <item name="android:itemBackground">@color/black</item>
        <item name="android:panelFullBackground">@color/black</item>
        <item name="android:navigationBarColor">@android:color/black</item>
        <item name="android:windowLightStatusBar">true</item>
        <item name="android:textColorPrimary">@android:color/white</item>
        <item name="android:textColor">@android:color/white</item>
        <item name="colorPrimary">@color/my_grey</item>
        <item name="colorPrimaryVariant">@color/my_grey_variant</item>
        <item name="colorOnPrimary">@android:color/black</item>
        <item name="colorSecondary">@android:color/white</item>
        <item name="colorSecondaryVariant">@android:color/white</item>
        <item name="colorOnSecondary">@android:color/black</item>
        <item name="android:windowBackground">@android:color/black</item>

        <item name="android:popupBackground">@color/black</item>
        <item name="android:drawablePadding">10dp</item>
        <item name="android:dividerHeight">0.5dp</item>
    </style>
</resources>

options.xml 代码

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/search_item"
        android:title="Search" />
    <item android:id="@+id/upload_item"
        android:title="Upload" />
    <item android:id="@+id/copy_item"
        android:title="Copy" />
    <item android:id="@+id/print_item"
        android:title="Print" />
    <item android:id="@+id/share_item"
        android:title="Share" />
    <item android:id="@+id/bookmark_item"
        android:title="BookMark" />

</menu>

Activity 代码

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.options, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        default:
            return super.onOptionsItemSelected(item);
    }
}

我已尝试修改样式文件中的弹窗背景颜色,但这些栏仍然无法移除。


解决方案

1. 彻底移除选项菜单

直接删除Activity中的onCreateOptionsMenu方法,或者让该方法返回false,阻止菜单加载:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    return false;
}

2. 更换为无ActionBar主题

当前主题父类是带ActionBar的版本,即使设置了windowActionBar=false仍可能有残留。切换到无ActionBar的主题:

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    // 保留原有样式属性
</style>

3. 手动隐藏ActionBar(不换主题的情况)

在Activity的onCreate方法中添加代码隐藏ActionBar:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getSupportActionBar() != null) {
        getSupportActionBar().hide();
    }
    setContentView(R.layout.your_layout);
}

4. 移除菜单选项分隔栏

如果要消除的是弹窗菜单里的分隔线,在样式中添加以下属性:

<item name="android:divider">@null</item>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 13:07:54