studio programacion herramientas fundamentos con avanzado aplicaciones android textview wrap

programacion - cómo ajustar el texto en la vista de texto en Android



manual de android en pdf (16)

Utilice la app:breakStrategy="simple" en AppCompatTextView , controlará el diseño de los párrafos.

Tiene tres valores constantes

  • equilibrado
  • alta calidad
  • sencillo

Diseñando en su TextView xml

<android.support.v7.widget.AppCompatTextView android:id="@+id/textquestion" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:scrollHorizontally="false" android:text="Your Question Display Hear....Your Question Display Hear....Your Question Display Hear....Your Question Display Hear...." android:textColor="@android:color/black" android:textSize="20sp" android:textStyle="bold" app:breakStrategy="simple" />

Si su nivel mínimo de api actual es 23 o más, entonces en Coding

yourtextview.setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE);

Para obtener más información, refiérase a este BreakStrategy

¿Alguien sabe cómo ajustar el texto en TextView en la plataforma Android? es decir, si el texto en la vista de texto excede la longitud de la pantalla, debe mostrarse en la segunda línea.

He buscado e intentado lo siguiente:

android:scrollHorizontally="false", android:inputType="textMultiLine", android:singleLine="false"

Pero ninguno funciona ..

¿Alguien puede sugerir cómo puedo hacerlo ... soy relativamente nuevo en la plataforma Android ...


Diseño de restricción

<TextView android:id="@+id/some_textview" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintLeft_toLeftOf="@id/textview_above" app:layout_constraintRight_toLeftOf="@id/button_to_right"/>

  • Asegúrese de que su ancho de diseño sea cero
  • las restricciones izquierda / derecha están definidas
  • la altura de diseño de wrap_content permite la expansión hacia arriba / abajo.
  • Establezca android:maxLines="2" para evitar la expansión vertical (2 es solo un ejemplo)
  • Elipses son prob. una buena idea con max lines android:ellipsize="end"

El ancho de 0dp permite restricciones izquierda / derecha para determinar qué tan ancho es tu widget.

Establecer las restricciones izquierda / derecha establece el ancho real de su widget, dentro del cual se ajustará el texto.

Documentos de diseño de restricciones


Al configurar android:maxEms a un valor determinado junto con android:layout_weight="1" hará que la vista de texto se ajuste una vez que alcance la longitud dada del ems.


Debes usar 2 parámetros:

  • android:ellipsize="none" : el texto no está cortado en el ancho de la vista de texto

  • android:scrollHorizontally="false" el texto se ajusta a tantas líneas como sea necesario


En Android Studio 2.2.3 bajo la propiedad inputType , hay una propiedad llamada textMultiLine . Seleccionar esta opción solucionó un problema similar para mí. Espero que eso ayude.


Es realmente muy fácil. Simplemente escriba: + "/ n" donde desee una palabra


Esto debería solucionar tu problema: android:layout_weight="1" .


Estoy usando Android 2.2 y mi vista de texto pasará automáticamente a la siguiente línea si supera la pantalla.

Si desea que el texto pase a la siguiente línea antes del final de la pantalla, solo agregue (simplemente coloque su propio valor de dp). Esto será útil si tiene una imagen a la derecha del texto.

android:layout_marginRight="52dp"


Necesita agregar su TextView en un ScrollView con algo como esto:

<ScrollView android:id="@+id/SCROLL_VIEW" android:layout_height="150px" android:layout_width="fill_parent"> <TextView android:id="@+id/TEXT_VIEW" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header" /> </ScrollView>


OK chicos la verdad está en algún lugar en el medio porque tienes que ver el problema desde la vista de los padres y la del niño. La siguiente solución funciona SOLO cuando el modo giratorio = dialog independientemente de la versión de Android (no hay problema allí ... lo probó en VD y DesireS con Android => 2.2):

  1. . Establece el modo de spinner (el padre) como:

    android:spinnerMode="dialog"

  2. Establezca las propiedades de la vista de texto (vista personalizada) a:

    android:layout_weight="1" android:ellipsize="none" android:maxLines="100" android:scrollHorizontally="false"

Espero que esto también funcione para ti.


Para el caso donde TextView está dentro de un TableLayout , la solución es establecer android:shrinkColumns="1" en el TableLayout . (Reemplace 1 con el número de columna en el que está envuelto el TextView que desea envolver (0-indexado))

AFAICT, no se necesitan otros atributos en TextView .

Para otros casos, vea las otras respuestas aquí.

FWIW, inicialmente lo había conseguido para trabajar con

<TextView android:id="@+id/inventory_text" android:layout_width="fill_parent" android:layout_weight="1" android:width="0dp"

pero eso dio como resultado un espacio adicional vacío en la parte inferior del Diálogo en el que estaba todo incluido.


Para mí, este problema solo ocurrió en Android <4.0

La combinación de parámetros que utilicé fue:

android:layout_weight="1" android:ellipsize="none" android:maxLines="100" android:scrollHorizontally="false"

El recuento de maxLines parecía ser la pieza final aleatoria que hizo que mi envoltura de TextView.


Por extraño que parezca, creé mi TextView en Code y lo envolví, a pesar de que no configuré nada excepto cosas estándar, pero compruébalo por ti mismo:

LinearLayout.LayoutParams childParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); childParams.setMargins(5, 5, 5, 5); Label label = new Label(this); label.setText("This is a testing label This is a testing label This is a testing label This is a testing labelThis is a testing label This is a testing label"); label.setLayoutParams(childParams);

Como puede ver en la definición de params, estoy usando LinearLayout. La etiqueta de clase simplemente extiende TextView, no haciendo nada allí excepto configurar el tamaño de fuente y el color de fuente.

Al ejecutarlo en el emulador (Nivel API 9), automáticamente envuelve el texto en 3 líneas.


Pruebe el enfoque de @ Guykun y asegúrese de que el ancho de los padres no esté configurado para ajustar el contenido. Esto es lo que me estaba perdiendo.


Solo estaba trabajando en un TextView dentro de un diseño dentro de RecyclerView. Me cortaron el texto, por ejemplo, para Read this message , vi: Read this . Intenté configurar android:maxLines="2" en el TextView, pero nada cambió. Sin embargo, android:lines="2" resultó en Read this en la primera línea y message en el 2do.


Yo tuve el mismo problema. El siguiente cambio lo hizo funcionar:

android:layout_width="wrap_content"

Los puntos suspensivos, maxLines o layout_weight: todos no hicieron ninguna diferencia. Nota: El ancho principal también se establece como wrap_content.