wenn ich TextView
mit singleLine="true"
und ellipsize="end"
(meine oberste Textansicht) verwende, funktioniert es funktioniert gut
aber in einem anderenTextView
mit mehr als 1 Zeilen (in meinem Fall 3 Zeilen in meinem unteren TextView
), lines="3" and maxLines="3" and ellipsize="end",
funktioniert nicht richtig.
Wenn ich ellipsize="end"
nicht in tvDesc stelle, werden 3 Zeilen angezeigt, was OK ist .. _ Hier ist der Code: 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>
Der obige Code zeigt TextView tvDesc mit 3 Zeilen und ohne Ellipsize. Hier ist das Bild:
Aber ich möchte ellipsize, deshalb verwende ich folgenden Code}: 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>
Die TextView tvDesc mit nur 2 Zeilen und Ellipsize zeigt,
die nicht ordnungsgemäß dezimierte UI als Followin:
Ich möchte 3 Zeilen in TextView tvDesc mit Ellipsize}
KANN MIR JEMAND HELFEN.?
Dies ist bei weitem die einfachste Lösung, die ich bei der Bereitstellung gefunden habe und derzeit verwende. Lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen!
Ach, und vergessen Sie nicht, das Android:ellipsize
-Tag in Ihrem XML zu entfernen, da Sie den unteren Code verwenden, um am Ende von 3 Zeilen automatisch eine Ellipse zu erstellen.
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);
}
}
});
Setzen Sie einfach Android:maxLines
und Android:ellipsize
.
<TextView
Android:id="@+id/tv_dua"
Android:ellipsize="end"
Android:maxLines="3"
Android:text="long text"
Android:textAppearance="?android:attr/textAppearanceMedium" />
Verwenden Sie das Folgende, um eine mehrzeilige Textansicht mit Ellipsis in der letzten Zeile zu erhalten:
Android:maxLines="4"
Android:ellipsize="end"
Android:singleLine="false"
Ersetzen Sie 4 durch die Anzahl der gewünschten Zeilen . Hoffe, es hilft!
Ich habe es mit MaxLines und Ellipsize auf Android 7 & 8 ausprobiert.
Android:maxLines="3"
Android:ellipsize="end"
Die Vorschau zeigt 2 Zeilen und in der dritten Zeile "...".
Dies scheint jedoch ein Fehler in der Vorschau zu sein.
Auf dem Gerät funktioniert es einfach gut, 3 Zeilen mit Text, am Ende der dritten Zeile "..."