メッセージをロードする必要があるTextViewがあります。 TextViewは最大2行(android:lines="2"
)です。メッセージには '\ n'文字を含めることができます。Textview部分テキストを表示
単語が折り返され、その2行のメッセージが合わない場合、最後に表示される単語の最後に3つのドット(...)を追加する必要があります。 TextViewに収まるテキストの長さはどうやって検出できますか?
TextViewのための私のコードは
<TextView
a:id="@+id/tv_message"
a:gravity="top"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_alignParentTop="true"
a:layout_toRightOf="@id/iv_icon"
a:layout_marginLeft="2dp"
a:layout_marginTop="4dp"
a:paddingRight="7dp"
a:paddingBottom="5dp"
a:textSize="12sp"
a:typeface="sans"
a:ellipsize="marquee"
a:lines="2"
a:maxLines="2"
a:textColor="@android:color/black"
/>
ですが、アプリケーションでは、テキストが署名を含む行があっても、2行に表示されます。メッセージは "message text" + "\ nSignature"のようですが、メッセージの長さに応じて1,2,3行になります。
テキストの長さを知る必要があるのはなぜですか?TextViewの固定幅を定義しない限り、画面のサイズによって異なる場合があります。 – Adinia
私の問題は、最後に目に見える単語の最後に3ドットを追加する方法がわからないことです。アンドロイド:elli psize = "end" android:ellipsize = "marquee"は役に立たないので、テキストビューにすべてのテキストを追加するのではなく、テキストビューに適合するテキストのみを追加します。 –
今使っているTextView?おそらく、省略されたものが動作するのを妨げる他の特性がある。 – Adinia