2011-07-20 9 views
23

私はTextViewを省略記号に設定していますが、テキストを置くとそうしません。何か案は?テキストは省略されません

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

あなたは試してみましたか:maxwidth属性、これはあなたが必要としていると思います –

答えて

-1

私はあなたがそれが機能するための絶対幅を指定する必要があると思います。

android:layout_width="100dip" 

または

android:layout_width="fill_parent" 
+0

いいえ、まだ正しく省略されていません – digipen79

+0

良い答えではありません。 –

3

あなたは複数行の省略記号作業を取得しようとしている場合は、残念ながらそれは非常にうまく機能しません。これはAndroidプラットフォームの既知のバグです。私が知っている限り、これは修正されていません。 TextView
あなたが得ることができる最高はthisリンクを参照してください

android:maxLines="2" 

を設定することによって達成することができる(ellipsizing 2行です。
でも別の回答で述べたように絶対的な幅で、それはまだのみ提供しますあなたは最大2行の省略記号を使用しています(ただし、前述のように1行の省略記号を使用できます)。たとえば、テキストが8行のTextViewに表示されますが、省略記号をオンにすると次のように表示されます:

+---------------------------------------------------+ 
|                                                   | 
| This is my cool text that is supposed to fill the | 
| entire textview but unfortunately because of t... | 
|                                                   | 
|                                                   | 
|                                                   | 
|                                                   | 
|                                                   | 
|                                                   | 
|                                                   | 
|                                                   | 
|                                                   | 
|                                                   | 
|                                                   | 
|                                                   | 
|                                                   | 
+---------------------------------------------------+ 

yあなたのTextViewのサイズを知っていれば、利用可能なカスタムコンポーネントを使用することができますhere(残念ながら、元々ホストしていたGoogleコードプロジェクトは消えてしまったようですので、このリンクはすべて私が見つけることができます)。

+0

私は一列に並んだ楕円を何回もやりました。ちょうど微調整が必​​要です(私の答えを見てください)。 –

+0

シングルラインの楕円は問題ではありません。複数行の楕円が壊れています。そう、はい、あなたのソリューションは1行の省略記号で動作します。 –

+0

ああ、私の間違い。私はOPの希望の結果で異なる推測をしたことがわかります。私は複数の行を省略記号化しようとしたことはありません。 –

15
android:layout_width="wrap_content" 

TextViewは限りそれは(画面をオフに実行など)する必要があるとして展開することができます。それを省略するには、市民のconn推奨の幅を設定する必要があります。絶対値ではなく、android:layout_width="fill_parent"であることが好ましいです。

その他のヒント:TextViewのmaxLines(おそらく1)を設定し、実際の省略記号( "...")を表示するには、

も設定する必要があります
+0

Glendonを設定する必要があります。アンドロイド:ellipsize = "end" 'を実行するには' scrollHorizo​​ntally'を 'false'にしないでください。 'android:ellipsize =" marquee "'をしたいのであれば、 'true'でなければなりません。)また、' android:lines'や 'android:maxLines'属性を追加すれば十分です。 :scrollHorizo​​ntally'。ああ、 'line'や' maxLines'を '1'よりも大きく設定することも私にとってはうまくいきます。 –

+0

1年以上前にこの回答を投稿したときは、これが正しいですし、楕円の属性を機能させるにはscrollHorizo​​ntallyをtrueに設定する必要がありました。私は多くのAndroidの開発をもうやらないので、これが変更された場合は、自由に編集を提案してください。 –

+2

いいえ、それでもそうでなければ、省略記号は表示されません。意味をなさないがそこに行く。 – zeh

2

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

64

試してみてください。

android:singleLine="true" 
+3

この行を省略記号と組み合わせると、目的の動作が得られます。 –

+3

は推奨されていません。 – Necronet

+3

最近の実装でもmaxLinesは動作しません。 – Alex

5

私はこの作品を作ることができました唯一の方法はwidth="1dp"weight="1"ellipsize="end"maxLines="1"scrollHorizontally="true"を設定することです。最初の2つはwidth="match_parent"と同じ種類のエフェクトを持っていますが、ウィジェットはディスプレイの端から伸びず、残りの3つの設定はすべてテキストを楕円にする必要がありました。

1

このソリューションは動作します:

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

幅も "wrap_content" に設定することができ

2

私のアプリは、私が

android:textIsSelectable="true" 

を追加したときには、これらのオプションのように思えるMAXLINES & ellipsizeを無視し始めました一緒には互換性がありません。

7

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

この作品の組み合わせである:要するに

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

android:singleLine = "true"は推奨されていませんか?あなたは源を与えることができますか? – Malachiasz

+0

更新されたAndroid SDKからのメッセージをEclipseに表示します。私は古いアンドロイドのバージョンとの互換性を維持しています。 –

0

あなたが代わりにwrap_content

使用
アンドロイドの特定DPにごlayout_widthを変更:単一行は= "true" を

アンドロイド:ellipsize = "終了"

コード:

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

のみ、このような何かを、実行時に動作します:

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

あなたにもそうのようなセットMAXLINESことができます。テキストが設定され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"/> 

省略記号が表示されます。

関連する問題