最近項目一直在使用actionBar,但是需要對actionbar上的一些控件進行自定義,這篇文章主要講actionbar 中 menu 及 overflow中的item的自定義。
如果需要自定義menu,需要讓我們的程式使用自定義theme,在AndroidManifest.xml中進行配置。如果是針對整個App,在<application>标簽中設定android:theme="@style/MyTheme",如果是針對某個activity,則在Activity标簽中增加 android:theme="@style/MyTheme", MyTheme 定義如下:
<style name="MyTheme" parent="Theme.AppCompat.Light">
<!--修改overflow相關的設定 -->
<item name="android:popupMenuStyle">@style/MyPopupMenu</item>
<item name="android:dropDownListViewStyle">@style/MyDropDownListView</item>
<item name="android:itemTextAppearance">@style/OverflowItemText</item>
<!--修改menu顔色 -->
<item name="android:actionMenuTextColor">@android:color/holo_green_light</item>
</style>
<!-- 設定overflow的背景顔色 -->
<style name="MyPopupMenu" parent="android:style/Widget.Holo.Light.ListPopupWindow">
<item name="android:popupBackground">@android:color/darker_gray</item>
</style>
<!-- 設定overflow中的item的相關屬性 -->
<style name="MyDropDownListView" parent="android:style/Widget.Holo.Light.ListView.DropDown">
<!-- 設定overflow中的item的選中背景 -->
<item name="android:listSelector">@android:color/holo_blue_light</item>
<!-- 設定overflow中的item之間的divider -->
<item name="android:divider">@android:color/holo_red_light</item>
<item name="android:dividerHeight">1dp</item>
</style>
<!--設定overflow中的文字的相關屬性 -->
<style name="OverflowItemText" parent="@android:style/Widget.ActionButton.Overflow">
<item name="android:textColor">@android:color/black</item>
<item name="android:textAppearance">?attr/textAppearanceSmallPopupMenu</item>
</style>
顯示效果如下: