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> 
  • Debe utilizar "sp" en lugar de "dp" para los tamaños de texto
  • Centrar un botón en un diseño Lineal
  • ¿Crear un tipo de datos XML personalizado?
  • Android: obtiene los elementos de la matriz de cadenas y muestra uno por uno en la vista de texto
  • Existe un archivo XML Layout de Android Studio pero no lo encuentro
  • Android ¿Es posible definir un mapa en un archivo XML?
  • ¿Interrupción de línea en formato XML?
  • SAXParser no puede analizar algunos caracteres
  • ¿Cómo hacer Android componentes de auto y utilizarlo de una biblioteca jar?
  • Android, Almacenamiento y recuperación de texto
  • Conflicto strings.xml en el manifiesto de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.