Android, ¿Cómo limitar el ancho de TextView (y agregar tres puntos al final del texto)?
Tengo un TextView
que 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"/>
Obsoleto:
Agregue una propiedad más android:singleLine="true"
en su Textview
Actualizado:
android:ellipsize="end"
android:maxLines="1"
Lo siguiente es lo que aprendí jugando con varias opciones para forzar a TextView
a una sola línea (con y sin los tres puntos).
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 maxLines
no 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.
Pruebe esta propiedad de TextView en su archivo de diseño.
android:ellipsize="end"
android:maxLines="1"