2012-10-13 37 views
5

后,我设置action barNAVIGATION_MODE_LIST我怎样才能改变“小三角颜色”在动作条NAVIGATION_MODE_LIST

getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 

,然后设置一个适配器它。

列表中显示出来的预期,但我需要更改名单的“小三角”的颜色作为默认颜色是非常接近我的背景颜色

是否有可能做到这一点,如果是的话,我该怎么做?

回答

12

您想要更改的小三角形位于ActionBarSpinner小部件的背景中。背景是state list drawable。国家列表绘制的项目9个补丁可绘像这样的(这个特殊的一个是用于全息光主题默认状态下,华电国际版):

enter image description here

要改变已三角形的颜色更改几组这些9贴片可绘图 - 每个dpi和状态的组合可绘制一个。您还需要绘制自定义状态列表,以作为Spinner小部件的背景。

要更改小部件背景,您必须调整主题。如果您使用ActionBarSherlock(ABS)更改actionDropDownStyle项目和本机ActionBar更改android:actionDropDownStyle项目(即使您使用ABS本机ActionBar用于运行Android 4.0和更高版本的设备)。

的主题应该是这样的:

<style name="MyTheme" parent="SomeParentStyle> 
    <item name="actionDropDownStyle">@style/MyActionBarSpinnerStyle</item><!-- if you use ABS --> 
    <item name="android:actionDropDownStyle">@style/MyActionBarSpinnerStyle</item> 
</style> 

而且MyActionBarSpinnerStyle应该是这样的:

<style name="MyActionBarSpinnerStyle" parent="@style/MyDropDownActionBarStyle"> 
    <item name="android:background">@drawable/my_custom_state_list_drawable</item> 
</style> 

MyDropDownActionBarStyle取而代之的应该是这样的Widget.Sherlock.Light.Spinner.DropDown.ActionBar如果你用ABS或Widget.Holo.Light.Spinner.DropDown.ActionBar如果您只定位原生ActionBar。