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.