34

TextViewテキストが。より長い場合、最後に3つのドットを表示するために1行にしたいですTextView。理由はわかりませんが、わかりません。

私はすでに同様のStackOverflowの質問に頭を悩ませていましたが、解決策がありませんでした。多分誰かがいくつかの有用なヒントを持っています。

<LinearLayout 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent"
    android:orientation="vertical">

    <TextView 
        android:textStyle="bold" 
        android:text="Full Name" 
        android:layout_height="wrap_content" 
        android:textSize="16sp"
        android:layout_width="wrap_content" 
        android:id="@+id/lName"
        android:layout_gravity="center_vertical" 
        android:maxLines="1"
        android:ellipsize="end"/>
</LinearLayout>

上記LinearLayoutは他の2つにネストされていLinearLayoutsます。多分これを知ることは重要です。私はすでに属性" singleLine"も試しましたが、これは非推奨であり、とにかく機能しないと言う人もいます。

4

7 に答える 7

53

次のスタイルをスタイルファイルに追加します(通常styles.xml)。

<style name="autoscroll">
    <item name="android:singleLine">true</item>
    <item name="android:ellipsize">marquee</item>
    <item name="android:marqueeRepeatLimit">marquee_forever</item>
    <item name="android:focusable">true</item>
    <item name="android:focusableInTouchMode">true</item>
    <item name="android:scrollHorizontally">true</item>
</style>

@style/autoscroll次に、スタイルをあなたのTextView:に追加します

<TextView android:id="@+id/lName"
      style="@style/autoscroll" />

この方法が必要な場合は、自動スクロール機能を簡単に再利用できます。

于 2012-06-29T12:43:50.863 に答える
24

これをTextViewのxmlに追加します。

        android:maxWidth="200dp" 
        android:maxLines="1" 

として

        android:singleLine="true"  

非推奨です。

于 2012-06-29T13:02:01.083 に答える
9
android:id="@+id/lName" android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:ellipsize="end"
    android:singleLine="true"
    android:text="Avinljhakjhsajkhakjshda"
    android:textSize="16sp"
于 2012-06-29T13:10:37.860 に答える
4

'android:ems'属性と一緒にandroid:ellipsize属性を追加しない限り、これは私には機能しません

android:ellipsize="end"
android:singleLine="true"
android:ems="8"
于 2019-08-04T23:22:36.130 に答える
4

テキストを選択できる間、省略記号は表示されませんでした。選択可能なテキスト(デフォルト)を無効にする必要がありました:

android:layout_width="0dp" (match constraint)
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:textIsSelectable="false"
于 2020-01-05T01:16:52.987 に答える
1

で動作しsingleLine="true"ますが、この属性は非推奨になりました。代わりにellipsizeを使用してください。scrollHorizontally="true"

于 2013-01-25T14:14:58.503 に答える
0

このコードを使用すると、間違いなく機能します。

<TextView
    android:id="@+id/sAddress"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:ellipsize="end"
    android:text="Adress"
    android:textSize="14sp"/>
于 2021-01-21T11:13:36.613 に答える