¿Cómo puedo cambiar el color de fondo de una ventana giratoria?

Estoy intentando fijar el color de fondo de una ventana giratoria pero todo que he intentado no trabajó correctamente.

Este es el control giratorio:

<Spinner android:id="@+id/myspinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@null" android:drawSelectorOnTop="true" /> 

Cuando hago clic en él, muestra un popup con un fondo blanco, y quiero cambiar eso.

La línea xml que utilizo para poblar el popup es:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/list_selector" android:paddingBottom="@dimen/padding_medium" android:layout_marginBottom="@dimen/padding_medium" android:orientation="vertical"> .......... </RelativeLayout> 

Y el fondo dibujable list_selector.xml:

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Pressed --> <item android:state_pressed="true" android:drawable="@color/green" /> <!-- @drawable/tab_press --> <!-- Selected --> <item android:state_selected="true" android:drawable="@color/green" /> <!-- @drawable/tab_press --> </selector> 

Agregar un estado predeterminado al xml anterior está bien, pero el control principal del hilandero muestra el elemento con ese color de fondo, y no quiero eso.

Otra cosa que he intentado es establecer el color de fondo de la aplicación a negro en styles.xml

 <style name="AppTheme" parent="android:Theme.Light"> <item name="android:background">#000000</item> <item name="android:textColor">#FFFFFF</item> <item name="android:typeface">sans</item> </style> 

Que anula el fondo emergente también, pero tiene efectos colaterales indeseables. ¿Hay alguna manera de lograr esto de una manera simple?

¡Gracias!

PS: Estoy usando API nivel 10 (2.3.3) y el atributo android:popupBackground no existe.

Utilice android: popupBackground = "@ drawable / Yourxmlfile.xml" en Su declaración de spinner de xml.

Por ejemplo

  <Spinner android:id="@+id/spinner3" android:layout_width="fill_parent" android:layout_height="40dp" android:layout_gravity="center" android:layout_weight="50" android:background="@drawable/gradient_spinner" android:gravity="center" android:paddingLeft="40dp" android:popupBackground="@drawable/radialfront" > 

Ninguna de las soluciones anteriores funcionó para mí.

La solución fue escribir en el adaptador pasado a la hiladora una implementación diferente en el método getDropDownView para mostrar un diseño diferente con colores personalizados:

 @Override public View getView(int position, View convertView, ViewGroup parent) { View vista = convertView; // layout for spinner widget if (vista==null) { LayoutInflater inflater = actividad.getLayoutInflater(); vista = inflater.inflate(R.layout.fila_colores_spinner, null); } return vista; } @Override public View getDropDownView(int position, View convertView,ViewGroup parent) { View vista = convertView; //layout for spinner popup if (vista==null) { LayoutInflater inflater = actividad.getLayoutInflater(); vista = inflater.inflate(R.layout.fila_colores_spinner_popup, null); } return vista; } 

Funciona muy bien !!

  • Declare el diseño con la vista de texto con el color deseado (y otros atributos que desea cambiar)
  • El id del textView debe ser text1 (porque este es el id que se declara en el layout por defecto en R.android para tu spinner)
  • Dé este diseño en su adaptador giratorio

por ejemplo:

  • In res \ layout \ custom_spinner_item.xml poner esto:

     TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#B2B5B7" android:gravity="center_horizontal" android:textSize="20dp" 

Entonces dé esta disposición al adaptador:

 ArrayAdapter<String> adapter = new ArrayAdapter<String>( MyActivity.this, R.layout.custom_spinner_item, strings); 
  • Entonces dé este adaptador a su hilandero
  <Spinner android:id="@+id/myspinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/list_selector" android:drawSelectorOnTop="true" /> 

prueba esto..

  • Cómo llamar o aparecer fragmento al hacer clic en el botón
  • Cómo animar la ventana emergente de abajo hacia arriba en android
  • Diálogos y ventanas emergentes en Android
  • gap_init llamado de origen restringido
  • Aparato de almacenamiento masivo USB Android
  • Android setError ("error") no funciona en Textview
  • Problema emergente del menú Hardware con Appcompat
  • ¿Cómo puedo reemplazar mi código popupmenu con la lista popupwindow?
  • Quiero establecer el ancho de popup en tiempo de ejecución de acuerdo al tamaño del título en android
  • ¿Cómo mostrar errores de entrada en popup?
  • Seleccione Texto y muestre el significado como pop-up en MUPDF
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.