singleLine="true"
およびellipsize="end"
(my top TextView)でTextView
を使用している場合、それはうまく機能します
ただし別の場合TextView
は1行以上(私の場合は下に3行TextView
)、lines="3" and maxLines="3" and ellipsize="end",
ありません正常に動作します。
ellipsize="end"
をtvDescに入れないと、3行が表示されますが、これで問題ありません。コードは次のとおりです: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>
上記のコードは、3行で楕円なしのTextView tvDescを示しています。画像は次のとおりです。
しかし、省略したいので、以下のコードを使用します: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>
2行と省略記号のみでTextView tvDescを表示、
followinのように、UIは適切に設計されていません。
ellipsizeを使用してTextView tvDescの3行にしたい
CAN ANYONE HELP ME.?
これは私が見つけた最も簡単なソリューションであり、現在展開に使用しています。他にサポートが必要な場合はお知らせください!
一番下のコードを使用して3行の終わりで自動的に楕円化するため、XMLのAndroid:ellipsize
タグを忘れずに削除してください。
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);
}
}
});
Android:maxLines
およびAndroid:ellipsize
。
<TextView
Android:id="@+id/tv_dua"
Android:ellipsize="end"
Android:maxLines="3"
Android:text="long text"
Android:textAppearance="?android:attr/textAppearanceMedium" />
次を使用して、最後の行に省略記号を含む複数行のテキストビューを取得します。
Android:maxLines="4"
Android:ellipsize="end"
Android:singleLine="false"
4を必要な行数に置き換えます。それが役に立てば幸い !
MaxLinesで試してみて、Android 7&8で省略します。
Android:maxLines="3"
Android:ellipsize="end"
プレビューには2行が表示され、3行目には「...」が表示されます。
しかし、これはプレビューアのバグのようです。
デバイス上では、3行目のテキスト「...」の最後に、3行のテキストで正常に機能します。