10

Android xml ファイルでandroid:ellipsize="end"を使用していますが、驚くべきことに、必要なレイアウトが得られません。3 つのドット (...) が表示されていますが、そのドットの後に別の単語が切り捨てられています。また、これは「常にではない」動作です。接続されている ListView を確認してください。動作が正常な場合とそうでない場合があります。

これが私のデバイスからのレイアウトのスクリーンショットです。

ここに画像の説明を入力

なぜこれが起こっているのか分かりません。これが私のxmlファイルで、tv_news_content TextViewに問題があります -

<?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="100dp"
android:background="@color/white" >

<ImageView
    android:id="@+id/iv_next_tier"
    android:layout_width="18dp"
    android:layout_height="21dp"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:layout_marginRight="10dp"
    android:src="@drawable/right_arrow" >
</ImageView>

<TextView
    android:id="@+id/tv_news_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="7dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="3dp"
    android:layout_toLeftOf="@+id/iv_next_tier"
    android:ellipsize="end"
    android:maxLines="2"
    android:text="News Title"
    android:textColor="@color/black"
    android:textSize="17dp"
    android:textStyle="bold" />

<TextView
    android:id="@+id/tv_news_content"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/tv_news_title"
    android:layout_below="@+id/tv_news_title"
    android:layout_marginRight="5dp"
    android:layout_toLeftOf="@+id/iv_next_tier"
    android:ellipsize="end"
    android:maxLines="2"
    android:text="News Contents"
    android:textColor="@color/black_light"
    android:textSize="15dp" />

<View
    android:id="@+id/view"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_below="@+id/tv_news_content"
    android:layout_marginTop="5dp" />

明確にするために、tv_news_titleは一番上の太字の TextView であり、iv_next_tierは右側の小さな矢印タイプの ImageView です。& tv_news_contentは、私が問題に直面している TextView です。

目的の出力が得られない理由はありますか? 望ましい出力とは、常に通常の動作を意味します。切り捨てられた単語の前ではなく、 tv_news_content TextView の 2 行目の末尾にある 3 つのドットが必要です。

どんな提案でも大歓迎です。

4

5 に答える 5

0

この投稿を見てください。複数行ビューの省略表示の問題を解決するカスタム EllipsizingTextView があります。ただし、問題も解決する場合があります。

于 2013-06-16T08:22:31.797 に答える
0

HTML 形式のテキストを含む文字列を表示するときに、同じ問題が発生していました。

すべてのhtmlタグを削除するとmyText.replaceAll("\\<.*?>","")問題が解決しました。

を使用して html タグを削除することもできますが、 .toString()Html.fromHtml(myText).toString()使用する必要があり、 fromHtml 出力を TextView に直接適用しないことに注意してください。一部の特殊文字が html でエンコードされている場合 (&、>、<...)、Html.fromHtml() を最終文字列に安全に再適用できます。

于 2014-08-26T13:35:08.997 に答える
-1

私が使用した:

if (myModel.mDataText().length() > 150) {
    mTextView.setText(Html.fromHtml(myModel.mDataText().substring(0, 150) + "..."));
} else {
    mTextView.setText(Html.fromHtml(myModel.mDataText() + "..."));
}
于 2013-06-16T08:09:10.787 に答える