Android, ¿Cómo limitar el ancho de TextView (y agregar tres puntos al final del texto)?

Resuelto Hesam asked hace 54 años • 25 respuestas

Tengo un TextViewque quiero limitar los caracteres del mismo. En realidad, puedo hacer esto, pero lo que estoy buscando es cómo agregar tres puntos (...) al final de la cadena. Este muestra que el texto ha continuado. Este es mi XML pero no hay puntos aunque limita mi texto.

<TextView 
        android:id                      = "@+id/tvFixture"
        android:layout_width            = "wrap_content"
        android:layout_height           = "wrap_content"
        android:layout_toLeftOf         = "@id/ivFixture_Guest"
        android:text                    = "@string/test_06"
        android:lines                   = "1"
        android:ems                     = "3"
        android:gravity                 = "right"
        style                           = "@style/simpletopic.black" 
        android:ellipsize="end"/>
Hesam avatar Jan 01 '70 08:01 Hesam
Aceptado

Obsoleto:

Agregue una propiedad más android:singleLine="true"en su Textview

Actualizado:

android:ellipsize="end" 
android:maxLines="1"
Mohammed Azharuddin Shaikh avatar May 25 '2012 05:05 Mohammed Azharuddin Shaikh

Lo siguiente es lo que aprendí jugando con varias opciones para forzar a TextViewa una sola línea (con y sin los tres puntos).

ingrese la descripción de la imagen aquí

android:maxLines="1"

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:text="one two three four five six seven eight nine ten" />

Esto simplemente fuerza el texto a una línea. Cualquier texto adicional está oculto.

Relacionado:

  • android:maxLines
  • android:singleLine (tenga en cuenta esto y esto )
  • android: líneas

ellipsize="fin"

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:ellipsize="end"
    android:text="one two three four five six seven eight nine ten" />

Esto corta el texto que no encaja pero permite a los usuarios saber que el texto ha sido truncado agregando puntos suspensivos (los tres puntos).

Relacionado:

  • ellipsize="inicio" (...aaabbbccc)
  • ellipsize="medio" (aaa...ccc)
  • android: Elipsis, significado de las opciones

ellipsize="marquesina"

<TextView
    android:id="@+id/MarqueeText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:singleLine="true"
    android:ellipsize="marquee"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:text="one two three four five six seven eight nine ten" />

Esto hace que el texto se desplace automáticamente por TextView. Tenga en cuenta que a veces es necesario configurarlo en el código:

textView.setSelected(true);

Supuestamente android:maxLines="1"debería android:singleLine="true"hacer básicamente lo mismo y dado que singleLine aparentemente está obsoleto , preferiría no usarlo, pero cuando lo saco, el marco ya no se desplaza. Sin embargo, sacarlo maxLinesno lo afecta.

Relacionado:

  • Texto de marquesina en Android

HorizontalScrollView con scrollHorizontalmente

<HorizontalScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/horizontalScrollView">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:scrollHorizontally="true"
        android:text="one two three four five six seven eight nine ten" />
</HorizontalScrollView>

Esto permite al usuario desplazarse manualmente para ver toda la línea de texto.

Suragch avatar May 04 '2015 12:05 Suragch

Pruebe esta propiedad de TextView en su archivo de diseño.

android:ellipsize="end"
android:maxLines="1"
Niranj Patel avatar May 25 '2012 05:05 Niranj Patel