texto studio que estilos diseño desde definicion color cero cambiar android text spinner wrap

studio - spinner en android que es



Cómo envolver texto largo en un spinner (2)

Defina un diseño personalizado y úselo con la ruleta y el adaptador.

Tengo dos controles spinner y EditText dentro de una vista de diseño de tabla en una fila separada. Los hilanderos están llenos de datos. Mi problema es que los datos (textos) que se llenan en los giradores son demasiado largos para ajustarse al tamaño de la pantalla. Por lo tanto, los giradores se ven obligados a estirar innecesariamente estirando otros controles en otra fila.

Es imprescindible para mí mostrar los textos en la ruleta. Por lo tanto, el uso de puntos suspensivos no es una opción. Si es posible, ¿cómo puedo envolver el extenso texto en los rotuladores?


Paso 1. TextView con texto envuelto

Lo primero que debe hacer es forzar TextView simple para ajustar el texto. Es fácil:

<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="false" android:text="very long text that will be wrapped to next line" />

Tenga en cuenta el atributo singleLine aquí.

Paso 2. Diseño personalizado

Ahora, de alguna manera, deberíamos establecer el atributo singleLine en false en TextView utilizado por Spinner para mostrar el elemento en la lista.

En su código, probablemente tenga lugar donde crear el adaptador para usarlo con Spinner :

this.mAdapter = ArrayAdapter.createFromResource(this, R.array.Planets, android.R.layout.simple_spinner_dropdown_item);

La idea es copiar el diseño android.R.layout.simple_spinner_dropdown_item a su proyecto. A continuación, singleLine configurando el atributo singleLine como false en CheckedTextView :

Para esto, agregue el archivo a la carpeta res/layout llamado multiline_spinner_dropdown_item.xml con el siguiente código:

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="?android:attr/spinnerDropDownItemStyle" android:singleLine="false" android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:ellipsize="marquee" />

Tenga en cuenta que este archivo es idéntico al diseño de android.R.layout.simple_spinner_dropdown_item , excepto que tiene una singleLine establecida en false ahora.

Paso 3. Crear un adaptador con un diseño personalizado

Modifique su código de creación de adaptador a:

this.mAdapter = ArrayAdapter.createFromResource(this, R.array.Planets, R.layout.multiline_spinner_dropdown_item);

Aquí está la captura de pantalla del ejemplo de SpinnerActivity modificado de Android SDK: