700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android之自定义 ActionBar 上的菜单(Menu)文字颜色

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

时间:2019-09-12 04:43:51

相关推荐

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

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

自定义Theme 修改MenuItem 文字颜色

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

<!-- 在 themes.xml 中定义如下主题,并将 AppTheme 应用到 application 中 --><style name="AppTheme" parent="AppBaseTheme"><item name="android:actionBarStyle">@style/CustomActionBar</item><item name="android:actionMenuTextAppearance">@style/ActionBarTitle</item><item name="android:actionMenuTextColor">@android:color/holo_blue_light</item></style><style name="ActionBarMenu" parent="@android:style/TextAppearance.Holo.Large"><item name="android:textColor">@android:color/holo_blue_light</item><item name="android:textSize">20sp</item></style>

复写onCreateOptionsMenu修改 MenuItem 文字颜色

/*** 修改 ActionBar 上的菜单字体颜色*/public static void setMenuItemTextColorToWhite(final Activity activity){activity.getLayoutInflater().setFactory(new Factory() {@Overridepublic 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;}});}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。