2012-10-01 59 views
6

Así que tienen una ruleta y tuvo éxito en cambiar el color del elemento seleccionado pero no soy capaz de cambiar el color de los elementos en el menú desplegableSpinner desplegable elementos de menú de color (Android)

este es mi spinner_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textSize="13sp" 
    android:textColor="#33CCFF"   
/> 

y este es mi styles.xml

<resources> 
    <style name="AppTheme" parent="android:Theme.Light" > 
    <item name="android:spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem.Color</item> 
    <item name="android:spinnerItemStyle">@style/SpinnerItem</item> 
    </style> 
    <style name="SpinnerItem.DropDownItem.Color" parent="@android:style/Widget.DropDownItem.Spinner"> 
     <item name="android:textColor">#4FBDE8</item> 
    </style> 

    <style name="SpinnerItem" parent="@android:style/Widget.TextView.SpinnerItem"> 
     <item name="android:textColor">#4FBDE8</item> 
    </style> 
</resources> 

¿hay alguna forma de XML en la que pueda hacerlo?

Respuesta

3

Aquí está la solución que encontré en otro hilo StackOverflow

<style name="Theme.NoTitleBar.WithColoredSpinners" parent="@android:style/Theme.NoTitleBar"> 
    <item name="android:spinnerItemStyle">@style/SpinnerItem</item> 
    <item name="android:spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem</item> 
</style> 

<style name="SpinnerItem" parent="@android:style/Widget.TextView.SpinnerItem"> 
    <item name="android:textColor">#00FF00</item> 
</style> 

<style name="SpinnerItem.DropDownItem" parent="@android:style/Widget.DropDownItem.Spinner"> 
    <item name="android:textColor">#FF0000</item> 
</style> 

+1

No funciona. el color desplegable no cambia –

1

Al especificar un archivo de recursos de diseño para la ruleta, hay que configurarlo en dos lugares.

  1. Si bien se declara una nueva ArrayAdapter

    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, R.layout.spinner_item, categories); 
    
  2. Mientras ajusta el dropDownViewResource en el adaptador de matriz.

    dataAdapter.setDropDownViewResource(R.layout.spinner_item_dropdown); 
    

en cuenta que dos archivos de diseño se han utilizado diferentes. Puede personalizar sus vistas de la siguiente manera, definiendo los estilos y utilizando estos estilos como tema en los diseños respectivos.

<style name="SpinnerItem" parent="@android:style/Widget.TextView.SpinnerItem"> 
    <item name="android:textColor">@color/white</item> 
    <item name="android:background">@color/black</item> 
</style> 

<style name="SpinnerItem.DropDownItem" parent="@android:style/Widget.DropDownItem.Spinner"> 
    <item name="android:textColor">@color/black</item> 
</style> 

Espero que esto ayude.

+0

No funciona en desplegable –

+1

Me funcionó. ¿Podría decirnos el problema exacto que enfrenta? –

+1

Nada sucede realmente, el color del texto no cambia el fondo –

Cuestiones relacionadas