如何修改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
相关产品推荐
相关产品推荐

