本文记录了修改 ActionBar 上 Menu 字体颜色的方法。第一种通过自定义主题实现,第二种通过复写onCreateOptionsMenu实现。

自定义Theme 修改MenuItem 文字颜色

自定义 ActionBar 上的菜单文字颜色需要通过 Activity 的 Theme 实现,而非 ActionBar 的 Theme。

复写onCreateOptionsMenu修改 MenuItem 文字颜色

/**

* 修改 ActionBar 上的菜单字体颜色

*/

public static void setMenuItemTextColorToWhite(final Activity activity){

activity.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 = activity.getLayoutInflater();

final View view = f.createView(name, null, attrs);

System.out.println((view instanceof TextView));

if (view instanceof TextView) {

((TextView) view).setTextColor(Color.WHITE/*这里修改颜色*/);

}

return view;

} catch (InflateException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

return null;

}

});

}

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐