Spinner no envuelve el texto, ¿se trata de un error de Android?

Si el texto de unSpinner El elemento es demasiado largo para caber en una sola línea, el texto no se ajusta, sino que se corta. Esto essolamente el caso porNivel de API> = 11. Aquí hay capturas de pantalla de Android4.2.2 (izquierda) que muestra el comportamiento incorrecto y Android2.3.3 (derecha) donde se ve como se espera.

android:singleLine="false" simplemente se ignora aquí. Así como todos los otros intentos comoandroid:lines, android:minLines, etc. ElTextView de alguna manera parece ser mucho más ancho que el ancho de la ventana.

Vi a otras personas tener el mismo problema, pero nadie pudo encontrar una solución. Entonces, ¿es esto un error del sistema? No creo que esta incoherencia entre las versiones del sistema operativo pueda ser intencionada.

Tenga en cuenta:

Hubo algunas respuestas que sugieren soluciones relativamente simples.

Escribiendo una costumbreAdapter y anulandogetView() tanto comogetDropDownView(). Esta no es la solución aquí, porque en este punto todavía existe el problema original: ¿cómo debe verse el diseño para manejar el ajuste de línea adecuado?

Envolviendo elTextView de la vista desplegable en un padreViewGroup. No trabaja conandroid:layout_width="match_parent" porque el ancho del padre parece extrañamente ilimitado.

Dando a la vista desplegable un ancho fijo. Esto no es adecuado para los diferentes anchos deSpinner puede tener.

Y por supuesto, ninguna solución es insertar manualmente.\ns en cualquier parte del texto.

Reproduce con el siguiente código:

ACTUALIZAR: También subí esto como un proyecto de muestra enGitHub: Descargar

/res/valores/juegos.xml:

<string-array name="items">
    <item>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt.</item>
    <item>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est.</item>
</string-array>

/res/layout/spinner_item.xml:

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

ConjuntoAdapter:

spinner.setAdapter(ArrayAdapter.createFromResource(this,
            R.array.items,
            R.layout.spinner_item));

Respuestas a la pregunta(14)

Su respuesta a la pregunta