TextViewなどで、画面からはみ出すような長い文字列を表示するときに、末尾などに「…」を表示する機能が、Ellipsizeであるが、単純にこれを有効にしただけでは、実際には、Ellipsizeの処理はされない。
以下に、必要と思われる設定項目を列挙しておく。
ellipsizeは、“none”, “start”, “middle”, “end”, そして“marquee”の中から選ぶ。水平方向の場合には、“end”を選ぶのが普通だと思われるが、自動的にスクロールして内容を表示させたい場合には“marquee”もあるだろう。
maxLinesは1に設定する。 かつてはsingleLineというbooleanのパラメタがあったが、これはdeprecatedになっているので、使用するべきではない。
そして最後の scrollHorizontallyを必ず trueにしないと、このEllipsizeの処理はなされない。多くの場合、この項目の設定忘れが、Ellipsizeされない原因だと思われる。
<TextView android:id="@+id/txtAuthor" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="end" android:maxLines="1" android:scrollHorizontally="true" android:text="TextView" />
Androidに関してへ戻る。