web-dev-qa-db-ja.com

テキストが楕円にならない

TextViewをellipsizeに設定しましたが、テキストを挿入しても変更されません。何か案は?

<TextView 
    Android:id="@+id/LegalsView" 
    Android:ellipsize="end"
    Android:layout_width="wrap_content" 
    Android:layout_height="wrap_content"
    Android:textAppearance="?android:attr/textAppearanceMedium" />
27
digipen79

試してください:

Android:singleLine="true"
63
Edwin Evans
Android:layout_width="wrap_content"

TextViewは、必要に応じて(画面からの実行を含む)拡大することができます。楕円形にするためには、市民の推奨値として幅を設定する必要があります。できれば絶対値ではなくAndroid:layout_width="fill_parent"を使用します。

追加のヒント:TextViewのmaxLinesを(おそらく1に)設定し、実際の省略記号( "...")を表示するには、おそらく次の設定も行う必要があります。

Android:scrollHorizontally="true"
17

Androidはオブジェクトの位置を正しく計算できます。いくつかの可能な組み合わせがあり、レイアウトの残りの部分が同じ行に依存しているため、設定を一致させる必要があります。

これは機能する組み合わせです。

Android:layout_width="0dip" // dynamic width
Android:layout_weight="1"   // less weight, other objects still "0"
Android:ellipsize="end"     // ... into end of text (right)
Android:singleLine="true"   // one line, deprecated, but necessary for some ambients
Android:maxLines="1"        // one line, new mode

要約すると、動的レイアウトを使用する場合、または固定サイズのみを使用する場合は、重みを示し、1行のみであることを示し、「...」の表示方法を構成します。

10
Rodrigo T.

私がこれを機能させることができた唯一の方法は、width="1dp"weight="1"ellipsize="end"maxLines="1"およびscrollHorizontally="true"を設定することです。最初の2つはwidth="match_parent"と同じ種類の効果があり、ウィジェットがディスプレイの端から拡張されていません。残りの3つの設定はすべて、テキストを楕円形にするために行う必要がありました。

5
R.L.Watkins

追加したときにアプリがmaxlinesとellipsizeを無視し始めました

Android:textIsSelectable="true"

これらのオプションは互換性がないようです。

5
WigglyWorld

複数行の省略記号を機能させようとすると、残念ながらうまく機能しません。これは、Androidプラットフォームの既知のバグであり、私の知る限りでは修正されていません。
TextViewでは、2行の楕円化が得られます(これは、

Android:maxLines="2"

this リンクを参照してください。
別の回答で述べたように絶対的な幅があっても、最大で2行の省略記号しか表示されません。 (しかし、前述のように、単一行の省略記号も実現可能です)。したがって、たとえば、テキストが8行のTextViewを埋める可能性がありますが、省略記号をオンにすると次のようになります。

+ ------------------------------------------------- -+ 
 | | 
 |これは、| 
 |を埋めるための私のクールなテキストです。テキストビュー全体ですが、残念なことに、tのために... | 
 | | 
 | | 
 | | 
 | | 
 | | 
 | | 
 | | 
 | | 
 | | 
 | | 
 | | 
 | | 
 | | 
 + ------------------------------------------- -------- + 
 

TextViewのサイズがわかっている場合は、利用可能なカスタムコンポーネントを使用できます here (残念ながら、最初にホストしていたGoogleコードプロジェクトが表示されなくなったため、このリンクを見つけることができます)。

3
Caspar Harmer

TextViewに特定の幅を定義していない場合、テキストが親ビューの幅に達すると、最初にテキストが楕円になります。

2
Wroclai

このソリューションは機能します:

Android:ellipsize="end"
Android:singleLine="false"
Android:lines="3"
Android:maxLines="3"

幅も "wrap_content"に設定できます

2
user1774438

あなたはlayout_widthをwrap_contentではなく特定のdpに変更します

そして

使用する
Android:singleLine = "true"

Android:ellipsize = "end"

コード:

    Android:layout_width="50dp"
    Android:layout_height="wrap_content"
    Android:text="check this text"
    Android:id="@+id/textView"
    Android:singleLine="true"
    Android:ellipsize="end"/>
0
Anandu

実行時のみ機能します。次のようにします。

textView.setEllipsize(TruncateAt.END);
textView.setLines(1);
textView.setHorizontallyScrolling(true);
textView.setText("Long text goes here");
0
Egemen Hamutçu

同様にmaxLinesを設定することもできます:

        <TextView
            Android:id="@+id/txt_title"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:maxLines="3"
            Android:ellipsize="end"
            Android:textStyle="bold"/>

テキストがmaxLinesセットを超えると、楕円が表示されます。

0
Cletus Ajibade