私のアプリでは、最後に3つのドットを付けないで1行を表示するためにmyTextViewにテキストが必要です。長すぎると少し違った書式のテキストを表示する必要があるので、maxHeightを設定するようなものはそれを作ってから助けにならないでしょう。TextViewが表示される前にTextViewがいくつあるか確認してください
私のアプローチは、TextViewが持つ線の数をチェックし、1より大きい場合はテキストを短くします。これは私が望むアプローチですが、まずLineCountを確認するためにViewを描画する必要があるため、 2行のレイアウトが点滅簡単に1行にテキストを切断前:
myTextView.Post(() =>
{
if (myTextView.LineCount > 1)
{
// make text shorter here to fit 1 line
}
});
だから、私の質問は、それがユーザーに表示される前に、ビューが必要がありますどのように多くの行をチェックする方法はありますか?私はそれを文字列の文字数に基づいて強制することができますが、それは間違っています。
リスナーを 'textview'の' addTextChangedListener'に追加し、 'afterTextChanged'に' \ n'文字を数えることができますか? –
これは、表示される直前に表示を確認するために使用することができます。https://developer.android.com/reference/android/view/ViewTreeObserver.OnGlobalLayoutListener.html –
GlobalLayoutイベントは私に "long "テキストはもはや、レイアウトは2列に並んでいます。 TextChangedイベントは\ n文字を持たず、LineCountはもちろん0です。 –