web-dev-qa-db-ja.com

Android:TextViewは文字列の最後の3文字を自動的に切り捨てて置き換えます

StringTextViewの幅より長い場合、自動的に次の行に折り返されます。これを避けるには、Android:singleLine(非推奨)を使用するか、Android:inputType="text"を設定します。必要なのは、Stringの最後の3文字を「...」に置き換えるものです。私は固定幅フォントを使用していないため、これはStringで使用されている文字によって常に異なります。だから、TextViewの文字列の最後の3文字を取得し、それらを置き換える最良の方法は何だろうと思っています。おそらく、Androidフレームワークに実装されているものがあります。これは一般的な問題に違いないからです。

120
znq

テキストビューの "ellipsize"プロパティを使用できるはずです。

<TextView
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:id="@+id/text_mytext"
    Android:ellipsize="end"
    Android:maxLines="1"
/>

レイアウトにも重力値を適用する必要がある場合があります。私は時々、「自動ストレッチ」ビューを見ずに見ました。

262
Nate

この問題に対する興味深い回避策が見つかりました。

maxLines=1
ellipsize=end
scrollHorizontally=true

秘Theは、水平スクロールに関する最後のステートメントです....確認してください。少なくともv2.2で動作します。

32
BonanzaDriver

プログラムで、次を使用できます。

TextView tx = new TextView(this);
tx.setTextSize(13);
tx.setGravity(Gravity.CENTER);
tx.setTop(90);
tx.setText("Long text here");
tx.setTextColor(Color.BLACK);
tx.setSingleLine(true);
tx.setEllipsize(TruncateAt.END);
3
xevser