前面一直在找 MenuItem的文字颜色的设置。我发现API中只有背景颜色的设置。。。
所以找到下面的方法。在OverFlow上看到的。
在onCreateOptionsMenu中覆写一下, 使MenuItem产生的ItemView去修改文字颜色.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
getLayoutInflater().setFactory(new Factory() {
@Override
public View onCreateView(String name, Context context, AttributeSet attrs) {
if (name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")
|| name.equalsIgnoreCase("com.android.internal.view.menu.ActionMenuItemView")) { //## 括号中是控件的类型, 只要是界面中有此类型的控件,全都会修改.
try {
LayoutInflater f = getLayoutInflater();
final View view = f.createView(name, null, attrs);
if(view instanceof TextView){
((TextView)view).setTextColor(Color.GREEN);
((TextView)view).setTextSize(13);
}
return view;
} catch (InflateException e){
e.printStackTrace();
} catch (ClassNotFoundException e){
e.printStackTrace();
}
}
return null;
}
});
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}