【问题标题】:How to style the ActionBar background and overflow menu (color & text)如何设置 ActionBar 背景和溢出菜单的样式(颜色和文本)
【发布时间】:2014-01-22 23:15:46
【问题描述】:

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

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

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

这是我的 style.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>

【问题讨论】:

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


    【解决方案1】:

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

    对于 Main Title 和 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:”命名空间。例如,在 API 11 之前的样式中,“android:actionBarStyle”将是“actionBarStyle”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      • 2014-12-30
      • 2015-01-13
      • 1970-01-01
      • 2011-02-14
      • 2020-10-18
      相关资源
      最近更新 更多