texto studio plain mostrar example español ellipsize and java android textview android-linearlayout android-textview

java - studio - ¿Cómo puedo mostrar elipses en mi TextView si es mayor que la línea 1?



textview android studio español (4)

Tengo el siguiente diseño que no funciona:

<LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:id="@+id/experienceLayout" android:background="#ffffff" android:layout_height="match_parent" android:paddingLeft="6dp" android:paddingRight="6dp" android:paddingBottom="6dp" android:paddingTop="6dp"> <TextView android:layout_weight="1" android:id="@+id/experienceLabel" android:text="Experience" android:layout_height="wrap_content" android:textColor="#000000" android:layout_width="wrap_content" android:textStyle="bold"> </TextView> <TextView android:id="@+id/experienceTextView" android:text="TextView" android:layout_height="wrap_content" android:textColor="#000000" android:layout_width="wrap_content" android:ellipsize="end" android:lines="1" android:maxLines="1" android:singleLine="true" android:fadeScrollbars="false"> </TextView> </LinearLayout>


Este es un problema común. Intenta usar lo siguiente:

android:scrollHorizontally="true" android:ellipsize="end" android:maxLines="1"

.............. el scrollHorizontally es la "salsa especial" que lo hace funcionar.


Esto también hará una sola línea con ellipsise

android:singleLine="true"


La forma en que funcionó para mí en múltiples dispositivos / API fue programáticamente así (donde tv es tu TextView):

if (tv.getLineCount() > 1) { int lineEndIndex = tv.getLayout().getLineEnd(0); String text = tv.getText().subSequence(0, lineEndIndex - 3) + "/u2026"; tv.setText(text); }


Utilizar esta

android:ellipsize="end" android:singleLine="true"

No use esto sin tener plena conciencia de lo que sale

android:ellipsize="end" android:maxLines="1"

Cuando use maxlines = 1 , truncará la mayoría de los caracteres.