Android Spinner: centralizar el texto verticalmente dentro de la hiladora

Jajaja

Necesito estos hilanderos para centrar verticalmente el texto. He intentado cosas como esta en la definición de Spinner xml:

<Spinner android:id="@+id/dir_spn" android:layout_gravity="center_vertical" android:gravity="center_vertical" android:layout_weight="1"/> 

Intenté construir un diseño personalizado de desplegable:

 <?xml version="1.0" encoding="utf-8"?> <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="@style/SpinnerDropDownItem" android:singleLine="true" android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:ellipsize="marquee" /> 

Styles.xml:

 <resources> <style name="SpinnerDropDownItem"> <item name="android:gravity">center_vertical</item> <item name="android:layout_gravity">center_vertical</item> <item name="android:textColor">?android:attr/textColorPrimary</item> <item name="android:textColorHighlight">#FFFF9200</item> <item name="android:textColorHint">?android:attr/textColorHint</item> <item name="android:textColorLink">#5C5CFF</item> <item name="android:textSize">16sp</item> <item name="android:textStyle">normal</item> </style> </resources> 

Conjunto desplegable del adaptador:

 adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); 

¿Cómo consigo que el texto de Spinner se centre verticalmente?

EDIT: vale la pena mencionar que la Actividad está temática en el manifiesto así:

 <resources> <style name="SpeakNSpell" parent="@android:style/Theme"> <item name="android:minHeight">68sp</item> </style> </resources> 

Que hace todas las vistas por lo menos 68sp alto. ¿Está esto afectando el texto dentro del Spinner también?

Volver a escribir

Parece que desea centralizar el texto verticalmente en el recurso de elemento, que se muestra a continuación, pero sus ejemplos de código apunta al menú desplegable …

Comparar diseños

El Spinner superior es el diseño por defecto simple_spinner_item android y el fondo es el mismo pero tiene android:gravity="center_vertical" añadido.

 <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="?android:attr/spinnerItemStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="marquee" android:gravity="center_vertical" android:singleLine="true" /> 

Puedes ver que usé tu Tema con la minHeight grande. A continuación se muestra un ejemplo básico para utilizar este diseño en un adaptador:

 Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_item, list); // set whatever dropdown resource you want spinner.setAdapter(adapter); 

Fui con la suposición de que desea "CASH", "Seleccionar producto", etc de su imagen centrada, me dejó saber si usted está tratando de hacer algo más!

Si alguien sigue teniendo problemas después de ajustar la gravity , intente ajustar el relleno del Spinner :

  android:paddingTop="0dp" android:paddingBottom="0dp" 

En su SpinnerAdapter pruebe algo como esto:

 public View getDropDownView(int position, View convertView, ViewGroup parent) { View v = super.getDropDownView(position, convertView,parent); ((TextView) v).setGravity(Gravity.CENTER); return v; } 
  • Cambiar el color del pequeño triángulo en spinner en android
  • ¿Cómo puedo leer el archivo json de la tarjeta SD
  • ¿Cómo establecer el valor predeterminado en el menú desplegable de hilandero en Android?
  • Cambie el color del texto del hilandero del holo
  • Agregar OnItemSelectedListener a Spinner
  • Android Spinner's onItemSelected ejecutado dos veces cuando se vuelve a Fragmento
  • Ejemplo de spinner básico
  • Spinner no aplica el atributo dropDownSelector
  • Cómo crear un diálogo de alerta con una ruleta
  • Android limitará el número de elementos mostrados en la lista desplegable de un hilandero
  • Android-spinnerwheel - Pestaña individual dibujable
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.