アンドロイド:TextViewには自動的に切り捨て、文字列の最後の3文字を置き換えます

StackOverflow https://stackoverflow.com/questions/1666736

  •  13-09-2019
  •  | 
  •  

質問

StringTextViewの幅より長い場合は、

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

役に立ちましたか?

解決

あなたはテキストビューの「ellipsize」プロパティを使用することができる必要があります:

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

あなたは、あまりにもレイアウトに重力値を適用する必要があるかもしれません。私は時々彼らなしで「オートストレッチ」ビューを見てきています。

他のヒント

この問題のための興味深い仕事ラウンドを見つけます。

maxLines=1
ellipsize=end
scrollHorizontally=true

トリックは、水平方向のスクロールについての最後の文が....それをチェックアウトすることです。それは、少なくともバージョン2.2で動作します。

プログラムは、あなたが使用することができます:

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);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top