Android之自定义 ActionBar 上的菜单(Menu)文字颜色

本文记录了修改 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;
			}

		});
	}



你可能感兴趣的:(Andriod,积累)