studio - establecer el texto de la vista alinear en el centro del hilandero en Android
centrar texto en android studio (7)
Al establecer textAlignment to center se colocará el texto en el centro.
android: textAlignment = "center"
<android.support.v7.widget.AppCompatSpinner
android:id="@+id/spinner_areas"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:visibility="visible"
android:gravity="center"
android:textAlignment="center"/>
Actualizar
El enlace de la pregunta mencionada ya no existe. Pero debido al alto número de votos y la utilidad para el futuro, el enlace no debe eliminarse.
El título de la pregunta vinculada fue:
ver-texto-en-el-centro-del-giro-cuando-seleccione-de-la-lista desplegable
Original
posible duplicado con https://stackoverflow.com/q/4545559/760489
Quiero alinear el texto de vista de spinner para centrar. Lo busco en Google pero no encontré nada, ¿alguien sabe esto? Cualquier ayuda o sugerencia son apreciadas.
Gracias
Crea un adaptador para tu hilandero como este,
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;
}
};
Ahora 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 pon este adaptador a tu hilandero,
spinner.setAdapter(adapter);
Déjame completar la respuesta. También es importante hacer espacio en Spinner.
Incorrecto:
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
Derecha:
<Spinner
android:id="@+id/spinner"
android:layout_width="100dp"
android:layout_height="wrap_content"
/>
Esto es muy simple, solo cree un archivo xml
llamado spinner_item.xml
con contenido como
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#111111"
android:padding="10dp"
android:textAlignment="center"
/>
Ahora en su clase de java
, a pesar de agregar el recurso de vista predeterminado de Android, agregue su recurso de vista personalizado como
ArrayAdapter<String> adapter= new ArrayAdapter<String>(context, R.layout.spinner_item, myList);
adapter.setDropDownViewResource(R.layout.spinner_item);
La línea textAlignment hará el truco.
Esto funciona sin cambios de diseño.
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
((TextView) adapterView.getChildAt(0)).setGravity(Gravity.CENTER);
}
});
Necesitas establecer tu propio diseño para el elemento spinner.
SpinnerAdapter adap = new ArrayAdapter<String>(this, R.layout.spinner_item, new String[]{"A", "B", "C"});
spriner.setAdapter(adap);
Donde R.layout.spinner_item es un diseño con contenido:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:gravity="center"
android:textColor="#000000"
android:text="Sample Text"
android:paddingBottom="5dp"
android:paddingTop="5dp"></TextView>
Tarde en el juego, pero quería agregar esto para futuros usuarios solo porque encontré una solución simple para mi problema. Me permitió centrar texto simple sin crear un diseño personalizado. La forma en que lo hice fue usando padding
<Spinner
android:id="@+id/example_spinner"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="2dp"
android:paddingBottom="2dp" />
Tuve éxito al centrar mi texto dentro de mi hilandero usando este método. Es probable que esto solo funcione para casos simples, pero probablemente querrá usar un diseño personalizado para casos más complejos de todos modos. Esto es solo para mantener sus archivos xml abajo y evitar tener que usar un diseño personalizado solo para centrar una rueda giratoria simple.