【问题标题】:How to change the text color of the overflow menu item to a different color using Sherlock action bar theme如何使用 Sherlock 操作栏主题将溢出菜单项的文本颜色更改为不同的颜色
【发布时间】:2012-07-21 20:40:44
【问题描述】:

我试图弄清楚如何使用 sherlock 操作栏将菜单项的文本颜色更改为不同的颜色。以下是我尝试过的主题

      <style name="MYTHEME" parent="Theme.Sherlock.Light.ForceOverflow">

         <item name="android:actionMenuTextColor">@color/menu_color</item>
         <item name="actionMenuTextColor">@color/menu_color</item>


        <item name="android:actionDropDownStyle">@style/MYTHEME.ActionBarStyle.DropDownStyle</item>
        <item name="actionDropDownStyle">@style/MYTHEME.ActionBarStyle.DropDownStyle</item>  

      </style>   

      <style name="MYTHEME.ActionBarStyle.DropDownStyle" parent="Widget.Sherlock.Spinner.DropDown.ActionBar">
        <item name="android:textColor">@color/menu_color</item>
      </style>

我可以使用上面的方法改变菜单项的颜色,但无法通过'actionDropDownStyle'改变溢出菜单项的颜色...

我也看过链接https://groups.google.com/forum/#!msg/actionbarsherlock/5lHOKNlXn_4/f9XicMXbFFAJ 但是关于更改溢出菜单背景的问题只有一半的答案。

任何想法如何更改溢出菜单项的文本颜色?

【问题讨论】:

    标签: android styles themes actionbarsherlock


    【解决方案1】:

    您必须创建自定义微调器样式,例如覆盖 ActionBarSherlock 库提供的样式:

    <style name="SpinnerItemStyle" parent="Widget.Sherlock.TextView.SpinnerItem">
        <item name="android:textColor">@android:color/white</item>
        <item name="android:textSize">22sp</item>
        <item name="android:textStyle">bold</item>
        <item name="android:padding">4dp</item>
        <item name="android:gravity">left|center_vertical</item>        
    </style>
    

    然后,在您的主题中引用它,在 spinnerItemStyle 项目中:

    <item name="spinnerItemStyle">@style/SpinnerItemStyle</item>
    

    编辑:

    注意:确保您的适配器将 com.actionbarsherlock.R.layout.sherlock_spinner_dropdown_item 作为下拉项,并将 com.actionbarsherlock.R.layout.sherlock_spinner_item 作为微调项:

    ArrayAdapter<String> navigationAdapter = new ArrayAdapter<String>(context, com.actionbarsherlock.R.layout.sherlock_spinner_item, navigationItems);
    navigationAdapter.setDropDownViewResource(com.actionbarsherlock.R.layout.sherlock_spinner_dropdown_item);
    

    【讨论】:

    • 我已经尝试了上面的代码,但我仍然无法更改溢出菜单项的文本颜色......有什么想法吗? & 我不认为溢出菜单项样式与 TextView.SpinnerItem...
    • 您必须将该项目 (spinnerItemStyle) 包含到您的应用程序主题中,该主题必须与任何 Sherlock 主题一样作为父主题。
    • 在我的情况下,MYTHEME 是我用于我的应用程序的主题名称,正如你建议我在我的主题中包含 spinnerItemStyle,下面的链接给出了我正在使用的自定义主题我的应用程序..link 但没有任何效果..如果您发现任何错误,请告诉我
    【解决方案2】:

    经过大量搜索,可以将ActionBarOverflowMenu内的文本颜色修改为ActionBarSherlock。仅在父样式元素下具有以下主题样式。仍然没有检查ActionBar 中的所有小部件是否更改。如果发现请见谅。

    res\values\styles.xml

    <style name="Theme.Zname" parent="@style/Theme.Sherlock.Light">
        <item name="actionBarItemBackground">@drawable/selectable_background_zname</item>
        <item name="actionBarWidgetTheme">@style/Overflow.Text.Color</item>
    </style>
    
    <style name="Overflow.Text.Color" parent="Widget">
            <item name="android:textColor">@android:color/white</item>
    </style>
    

    res\values-v14\styles.xml

    <style name="Theme.Zname" parent="@style/Theme.Sherlock.Light">
        <item name="actionBarItemBackground">@drawable/selectable_background_zname</item>
        <item name="android:actionBarWidgetTheme">@style/Overflow.Text.Color</item>
    </style>
    
    <style name="Overflow.Text.Color" parent="Widget">
            <item name="android:textColor">@android:color/white</item>
    </style>
    

    【讨论】:

      猜你喜欢
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多