ToolBar上添加Menu,除搜索图标外其他的都收起来。修改ToolBar背景色为深灰色,然后才发现MenuItem里面的背景色还是原来白色。
修改颜色后,ToolBar为深灰,有搜索和菜单图标
ToolBar
打开菜单后
打开后的ToolBar
修改MenuItem背景颜色
原来res/values/styles.xml的配置
@color/colorWeChatGray
@color/colorPrimaryDark
@color/colorAccent
修改后
@color/colorWeChatGray
@color/colorPrimaryDark
@color/colorAccent
@style/optionMenu
@color/colorWeChatGray
这样MenuItem的背景颜色就修改了
背景色修改
但这看起来明显不对劲:
菜单把ToolBar的两个图标遮住
背景色改变后和文字颜色不协调
修改文字颜色
我们先处理文字的颜色,添加android:textColor和对应的颜色即可
@color/colorWeChatGray
@color/colorPrimaryDark
@color/colorAccent
@style/optionMenu
@color/colorWhite
@color/colorWeChatGray
修改文字颜色
遮蔽ToolBar图标
遮蔽图标的问题比较好解决,
把parent="Widget.AppCompat.ActionBar.Overflow">的.Overflow去掉
处理遮蔽
MenuItem图标显示
上面的图片中MenuItem的Icon本来是不显示的,需要加入以下代码。在Android 5.0手机上测试可以用,Android 4.4及之前的还不清楚。
@Override
protected boolean onPrepareOptionsPanel(View view, Menu menu) {
if (menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try{
Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e) {
Log.e(getClass().getSimpleName(), "onMenuOpened Exception", e);
}
}
}
return super.onPrepareOptionsPanel(view, menu);
}