64

にあるTextViewレイアウトに がwrap_contentありlayout_widthます。最大 15 文字に制限されているため、使用してmaxLengthいます。

これを 3 つのドット (...) で終了する必要があります。これは、dp で固定サイズを指定しTextViewた場合にのみ発生layout_widthします。これは、やりたくないことです。

15 番目の文字の後の文字列をトリミングしてから 3 つのドットを追加することで、プログラムで可能であることはわかっていますが、XML で行うことを好みます。

テキストを 3 つのドットで終了し、wrap_content のままにする方法はありますか?

<TextView
    android:id="@+id/inbox_contactName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:lines="1"
    android:maxLines="1"
    android:ellipsize="end"
    android:singleLine="true"
    android:maxLength="15"
    android:textColor="#0670b4"
    android:textSize="16sp" />
4

11 に答える 11

22

両方maxLengthを使用することはできませんEllipsize。定義はできますがMaximum EMS、以下の例を参照してください

<TextView
        android:id="@+id/tv_hist_source_lang"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:maxEms="8"
        android:maxLines="1"
        android:text="TextView"
        android:textAppearance="?android:attr/textAppearanceMedium" />

このように見えます

于 2015-01-07T09:52:51.830 に答える
18

@Yanivがコードを使用してすでに解決したことを(コメントから)収集しますが、これは(xmlを使用して)正しい方法です。ここに着陸する他のユーザーを助けるかもしれません。コツは、toleftofとtorightofの両方を使用することです。

<RelativeLayout>
...
 <TextView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:singleLine="true"
        android:layout_toRightOf="@id/some_element1"
        android:layout_toLeftOf="@id/some_element2"/>
...
<RelativeLayout>
于 2013-04-18T17:47:27.940 に答える
14

使用できます

android:maxWidth="100dp"
android:maxLines="1"
android:ellipsize="end"

これだけが私にとってはうまくいきます。

于 2016-10-20T07:43:07.020 に答える
0

ラジオボタンでこれを行う必要があり、サイズを1行に制限したかった. を使ったらAndroid:singleline="true"、ラジオボタンのチェック丸が消えました。最終的に機能したコードは次のとおりです。

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

ems を設定する必要はありません。これはおそらく、TextView やその他の UI コンポーネントでも機能します。これが誰かに役立つことを願っています。

于 2014-02-24T12:03:53.220 に答える
-1

xml から行を削除します

android:lines="1"
        android:maxLines="1"
于 2013-04-23T13:52:23.863 に答える