如何设置ActionBar背景和溢出菜单的样式(颜色和文本)

时间:2014-01-22 23:15:46

标签: android xml android-actionbar background-color android-styles

您好我想更改ActionBar菜单的单击背景颜色。

我用选择器等尝试了很多东西,但没有任何效果。

我不想使用ActionBar生成器或类似的东西。我想通过标准XML代码更改单击事件颜色。但我不知道如何。

这是我的styles.xml

<resources>

<style name="keksRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/keks_ratingbar_full</item>
<item name="android:minHeight">23dip</item>
<item name="android:maxHeight">78dip</item>
</style>

<style name="MyadaptHoloLightTheme" parent="@android:Theme.Holo.Light">

<item name="android:actionBarStyle">@style/ActionBar</item>
<item name="android:popupMenuStyle">@style/ActionBarPopup</item>
</style>

<!--ActionBarBackround Color -->
<style name="ActionBar" parent="android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@color/ActionBarRed</item>
<item name="android:dropDownSelector">@color/ActionBarSelection</item>
</style>

<!-- ActionBar Backround Color Popup -->
<style name="ActionBarPopup" parent="android:style/Widget.Holo.Light.ListPopupWindow">
<item name="android:popupBackground">@color/ActionBarMenu</item>

</style>

</resources>

1 个答案:

答案 0 :(得分:0)

有几种不同的文本和背景(颜色/可绘制)样式可以处理ActionBar的不同部分。

对于主标题和ActionBar / ActionMode背景:

<style name="ColorTheme.DeviceDefault.Dark" parent="@style/Theme.AppCompat">
    <!-- ActionBar -->
    <item name="android:actionBarStyle">@style/ColorTheme.ActionBar.Dark.Solid</item>

    <item name="android:actionModeStyle">?android:actionBarStyle</item>
    <item name="android:actionModeBackground">@drawable/cab_background_top_dark</item>
</style>

<style name="ColorTheme.ActionBar.Dark.Solid" parent="@android:style/Widget.Holo.ActionBar.Solid">
    <item name="android:titleTextStyle">@style/TitleTextStyle</item>
    <item name="android:background">@drawable/ab_solid_dark</item>

    <!-- Added in API 14 -->
    <item name="android:backgroundStacked">@drawable/ab_stacked_solid_dark</item>
    <item name="android:backgroundSplit">@drawable/ab_bottom_solid_dark</item>
</style>

对于菜单项:

<style name="ColorTheme.DeviceDefault.Dark" parent="@style/BaseTheme.DeviceDefault.Dark">

    <item name="android:actionMenuTextAppearance">@style/TitleTextStyle</item>
    <item name="android:actionMenuTextColor">?colorButtonText</item>

    [Also various action...Style attributes]
</style>

对于溢出菜单:

<style name="ColorTheme.DeviceDefault.Dark" parent="@style/BaseTheme.DeviceDefault.Dark">
    <item name="android:popupMenuStyle">@style/ColorTheme.ActionBar.PopupMenu.Dark</item>

    <item name="android:textAppearanceLargePopupMenu">@style/PopupMenuTextStyle</item>
    <item name="android:textAppearanceSmallPopupMenu">@style/PopupMenuTextStyle.Small</item>
</style>


<style name="PopupMenuTextStyle" parent="@android:attr/textAppearance">
    <item name="android:textColor">?colorTitleText</item>

    <item name="android:typeface">sans</item>
    <item name="android:textSize">@dimen/text_size_small_plus</item>
    <item name="android:textStyle">normal</item>
</style>

<style name="PopupMenuTextStyle.Small">
    <item name="android:textSize">@dimen/text_size_small</item>
</style>

另请注意,其中一些仅是API 11+或API 14+,因此要使用较低版本的SDK,您需要AppCompat Support Library,并删除“android:”命名空间。例如,“android:actionBarStyle”将是API 11之前样式的“actionBarStyle”。