textos texto studio solo salto plain numeros mostrar linea largos largo edittext color cambiar ajustar android textview android-textview ellipsis

android - texto - Establecer Elipsis en TextView reduce las líneas mostradas por uno(en lugar de solo elipsis)



texto largo android studio (6)

cuando uso TextView con singleLine="true" y ellipsize="end" (mi Top TextView), funciona bien

pero en otro TextView tiene más de 1 línea (en mi caso, 3 líneas en mi TextView inferior), lines="3" and maxLines="3" and ellipsize="end", no funciona correctamente.

Cuando NO pongo ellipsize="end" en tvDesc, muestra 3 líneas, lo cual está bien. Aquí está el código: XML:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/imgv" android:layout_width="65dp" android:layout_height="80dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:src="@drawable/img1" android:scaleType="fitXY" /> <TextView android:id="@+id/tvTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/imgv" android:background="@android:color/white" android:textColor="@android:color/black" android:text="Title testing line number and ellipsize at end" android:maxLines="1" android:singleLine="true" android:ellipsize="end" <--- WORKS WELL android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/tvDesc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tvTitle" android:layout_toRightOf="@+id/imgv" android:layout_alignBottom="@+id/imgv" android:layout_alignParentRight="true" android:textSize="14dp" android:lines="3" android:maxLines="3" <---------- WITHOUT ellipsize android:text="I wanna this textview of having 3 lines and ellipsize at END and at this time I am Testing for it. This TextView shows 3 lines WITHOUT ellipsize property, but shows only 2 Lines when ELLIPSIZE property is setted" android:textAppearance="?android:attr/textAppearanceMedium" /> </RelativeLayout>

El código anterior muestra TextView tvDesc con 3 líneas y sin elipsis. Aquí está la Imagen:

Pero, quiero elipsize, entonces uso el siguiente código : XML:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/imgv" android:layout_width="65dp" android:layout_height="80dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:src="@drawable/img1" android:scaleType="fitXY" /> <TextView android:id="@+id/tvTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/imgv" android:background="@android:color/white" android:textColor="@android:color/black" android:text="Title testing line number and ellipsize at end" android:maxLines="1" android:singleLine="true" android:ellipsize="end" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/tvDesc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tvTitle" android:layout_toRightOf="@+id/imgv" android:layout_alignBottom="@+id/imgv" android:layout_alignParentRight="true" android:textSize="14dp" android:lines="3" android:maxLines="3" android:ellipsize="end" <------ WITH ELLIPSIZE android:text="I wanna this textview of having 3 lines and ellipsize at END and at this time I am Testing for it. This TextView shows 3 lines WITHOUT ellipsize property, but shows only 2 Lines when ELLIPSIZE property is setted" android:textAppearance="?android:attr/textAppearanceMedium" /> </RelativeLayout>

Que muestra TextView tvDesc con solo 2 líneas y Ellipsize ,

que no está correctamente desmezclado UI, como Followin:

Quiero 3 líneas en TextView tvDesc con ellipsize

ALGUIEN PUEDE AYUDARME.?


Esta es, de lejos, la solución más simple que he encontrado y que estoy utilizando actualmente en la implementación. ¡Avíseme si necesita alguna otra ayuda!

Ah, y recuerde eliminar la etiqueta android:ellipsize en su XML ya que usará el código inferior para elipsar automáticamente al final de 3 líneas.

TextView snippet; snippet.setText("loren ipsum dolor loren ipsum dolor loren ipsum dolor loren ipsum dolor loren ipsum dolor loren ipsum dolor loren ipsum dolor loren ipsum dolor loren ipsum dolor loren ipsum dolor loren ipsum dolor loren ipsum dolor loren ipsum dolor loren ipsum dolor ") ViewTreeObserver vto = this.snippet.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { ViewTreeObserver obs = snippet.getViewTreeObserver(); obs.removeGlobalOnLayoutListener(this); if (snippet.getLineCount() > 3) { int lineEndIndex = snippet.getLayout().getLineEnd(2); String text = snippet.getText().subSequence(0, lineEndIndex - 3) + "..."; snippet.setText(text); } } });



Lo probé con maxLines y ellipsize en Android 7 y 8.

android:maxLines="3" android:ellipsize="end"

La vista previa muestra 2 líneas y en la tercera línea "...".

Pero esto parece ser un error en la vista previa.

En el dispositivo, funciona bien, 3 líneas con texto, al final de la tercera línea "..."


Simplemente configure android:maxLines y android:ellipsize .

<TextView android:id="@+id/tv_dua" android:ellipsize="end" android:maxLines="3" android:text="long text" android:textAppearance="?android:attr/textAppearanceMedium" />


Simplemente use ellipsize combinado con scrollHorizontally="true" . Simple y limpio.

Funcionó perfectamente para mí.


Utilice lo siguiente para obtener una vista de texto de líneas múltiples con puntos suspensivos en la última línea:

android:maxLines="4" android:ellipsize="end" android:singleLine="false"

Reemplace 4 con la cantidad de líneas que desee. Espero eso ayude !