[英]How do I customize menu item's background color?
我正在嘗試自定義Toolbar
的彈出菜單。 現在,我無法設置菜單項的背景顏色。
我的styles.xml看起來像這樣:
<resources>
<!-- Base application theme. -->
<style name="AppTheme.NoActionBar" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:actionBarStyle">@style/AppTheme.ActionBar</item>
<item name="android:actionMenuTextColor">@color/actionbar_text_color</item>
<item name="android:dropDownListViewStyle">@style/AppTheme.DropDown</item>
<item name="android:itemTextAppearance">@style/menuItemColor</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/AppTheme.ActionBar</item>
<item name="actionMenuTextColor">@color/actionbar_text_color</item>
<item name="dropDownListViewStyle">@style/AppTheme.DropDown</item>
<item name="itemTextAppearance">@style/menuItemColor</item>
</style>
<style name="AppTheme.ActionBar" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">\
<item name="titleTextColor">@color/actionbar_text_color</item>
<item name="subtitleTextColor">@color/actionbar_text_color</item>
<item name="android:background">@color/actionbar_background</item>
<!-- Support library compatibility -->
<item name="background">@color/actionbar_background</item>
</style>
<style name="AppTheme.DropDown" parent="@style/Widget.AppCompat.Light.ListView.DropDown">
<item name="android:background">@color/background_color</item>
<!-- Support library compatibility -->
<item name="background">@color/background_color</item>
</style>
<style name="menuItemColor">
<item name="android:textColor">@color/inactive_text_color</item>
</style>
</resources>
我用代碼將ActionBar添加到活動布局中
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:theme="@style/AppTheme.ActionBar"/>
注意:我使用的是AppCompat,而不是Holo或其他。
這可以幫助您創建類似的樣式,
<style name="PopupMenu" parent="@android:style/Widget.PopupMenu">
<item name="android:popupBackground">@android:color/white</item>
並將其添加到您的主要主題。
<style name="AppTheme.NoActionBar" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:popupMenuStyle">@style/PopupMenu</item> <! added it here
<item name="android:actionBarStyle">@style/AppTheme.ActionBar</item>
<item name="android:actionMenuTextColor">@color/actionbar_text_color</item>
<item name="android:textColor">@color/text_color</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/AppTheme.ActionBar</item>
<item name="actionMenuTextColor">@color/actionbar_text_color</item>
</style>
<style name="AppTheme.ActionBar" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">\
<item name="titleTextColor">@color/actionbar_text_color</item>
<item name="subtitleTextColor">@color/actionbar_text_color</item>
<item name="android:popupMenuStyle">@style/PopupMenu</item> <! added it here
<item name="android:background">@color/actionbar_background</item>
<!-- Support library compatibility -->
<item name="background">@color/actionbar_background</item>
</style>
您還必須為Overflow Menu定義樣式,如下所示:
<!-- OverFlow menu Styles -->
<style name="PopupMenuListView" parent="@style/Widget.AppCompat.Light.ListView.DropDown">
<item name="android:divider">@color/sp_red_500</item>
<item name="android:dividerHeight">1dp</item>
<item name="android:background">@color/white</item>
</style>
並在您的父主題樣式(基本應用程序主題。)中定義下拉菜單樣式,如下所示:
<item name="dropDownListViewStyle">@style/PopupMenuListView</item>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.