texto studio personalizar centrar bar android text-alignment android-spinner

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.