Alinear texto en el centro – Spinner

Aquí está el código:

spinner.xml:

<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="40dp" android:maxLines="1" android:gravity="center" android:singleLine="true" android:textColor="#FFFFFF" android:textSize="12sp" /> 

Hilandero

  <Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" /> 

Java:

  array = new ArrayAdapter<String>(Activity.this, R.layout.spinner, ArrayList); array .setDropDownViewResource(R.layout.spinner); Spinner.setAdapter(array ); Spinner.setOnItemSelectedListener(this); 

Problema: el texto sigue alineado a la izquierda

6 Solutions collect form web for “Alinear texto en el centro – Spinner”

Simplemente agregue su estilo de tema de aplicación predeterminado a estas dos líneas:

 <item name="android:spinnerItemStyle">@style/spinnerItemStyle</item> <item name="android:spinnerDropDownItemStyle"> @style/spinnerDropDownItemStyle </item> 

crear el nuevo estilo:

 <style name="spinnerItemStyle"> <item name="android:gravity">center</item> </style> <style name="spinnerDropDownItemStyle"> <item name="android:gravity">center</item> </style> 

Eso es !

Tenga en cuenta que el tema base utilizado aquí es: Theme.AppCompat.Light y esto se aplicará como los estilos de hilera por defecto en su aplicación.

Utilice la siguiente etiqueta en la ruleta

 android:textAlignment="center" 
 <TextView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/textView1" android:layout_width="match_pa`enter code here`rent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:ellipsize="marquee" android:textAlignment="center" android:textSize="17sp" tools:ignore="MissingPrefix" /> 

Utilice esta vista de texto como el diseño pasado a su adaptador. androide: textAlignment = "center" esta línea es la que hace la magia

su diseño R.layout.my_spinner_style,

  <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+android:id/text1" style="?android:attr/spinnerItemStyle" android:singleLine="true" android:textColor="#ffffff" android:layout_width="fill_parent" android:layout_height="wrap_content" android:ellipsize="marquee" /> 

Ahora ajuste este adaptador a su hiladora,

  spinner.setAdapter(adapter); 

Cree un adaptador para su hiladora así,

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, R.layout.my_spinner_style,array_of_values) { public View getView(int position, View convertView,ViewGroup parent) { View v = super.getView(position, convertView, parent); ((TextView) v).setTextSize(16); return v; } public View getDropDownView(int position, View convertView,ViewGroup parent) { View v = super.getDropDownView(position, convertView,parent); ((TextView) v).setGravity(Gravity.CENTER); return v; } }; 

He seguido esto: http://nevescheng.blogspot.fr/2013/05/spinner-with-item-text-aligned-to-center.html y esto funcionó bien

He notado que tuve otro spinner xml en la carpeta de valor-v11 y este no estaba modificado, lo he modificado y su trabajado

La mejor respuesta y fue probado por Mouloud , pero en Marshmallow tuve que añadir textAlignment para hacer que los elementos de la lista desplegable se centraran. Por lo tanto, el código completo basado en código Mouloud es:

 <!-- Spinner style --> <style name="spinnerItemStyle"> <item name="android:textColor">@color/colorAccent</item> <item name="android:gravity">center</item> <item name="android:textAlignment" tools:targetApi="jelly_bean_mr1">center</item> </style> <!-- Spinner style drop down style--> <style name="spinnerDropDownItemStyle"> <item name="android:textColor">@color/colorPrimaryDark</item> <item name="android:gravity">center</item> <item name="android:textAlignment" tools:targetApi="jelly_bean_mr1">center</item> </style> 

Y añada el estilo ahora a su estilo del tema:

 <!-- Change the spinner style--> <item name="android:spinnerItemStyle">@style/spinnerItemStyle</item> <item name="android:spinnerDropDownItemStyle">@style/spinnerDropDownItemStyle</item> 
  • Excepción de reproducción de Android Studio: "mBaselineAlignedChildIndex de LinearLayout apunta a una vista que no sabe cómo obtener su línea de base"
  • XML vs JSON. ¿Cuál es mejor para almacenar un pequeño fragmento de datos?
  • ¿Cómo puedo poner utf-16 caracteres en Android cadena de recursos?
  • Cómo cambiar / cambiar el tamaño de EditText en el diseño de la tabla?
  • Android: capitalize no funciona
  • Uso de la fuente personalizada en Android TextView utilizando xml
  • Línea de archivo XML binario # 26: Error al inflacionar la clase android.widget.TextView
  • Inflar diseño de forma programática en otro diseño
  • No hay números de línea en Eclipse o en el editor de Android Studio XML.
  • Múltiples anotaciones encontradas en esta línea:
  • No se pudo crear el contenido de la pestaña porque no se pudo encontrar la vista con id -1 Error XML en Android Eclipse?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.