Android之自定义 ActionBar 上的菜单(Menu)文字颜色
生活随笔
收集整理的這篇文章主要介紹了
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;}});}總結
以上是生活随笔為你收集整理的Android之自定义 ActionBar 上的菜单(Menu)文字颜色的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android之三大图片缓存原理、特性对
- 下一篇: Android之ActionBar常用设