TextViewでの文字列折り返し+省略記号

12,316 views
Skip to first unread message

tmmr kz

unread,
Jun 7, 2011, 9:38:19 AM6/7/11
to android-g...@googlegroups.com
はじめて質問させていただきます。

1つのTextView内にある程度長い文字列を設定し、
・折り返しで2行分を表示する
・2行分に文字列が収まらない場合は、2行目末尾に省略記号(…)を表示する
ものを作りたいと考えています。

下記の通りXMLを定義することで出来た!かと思ったのですが、
いくつか問題に気づきました…

<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:lines="2"
android:ellipsize="end"/>

問題:
・設定する文字列によっては、2行目末尾の省略記号が表示されたりされなかったりする。
・2行目の途中に改行が挟まると、省略記号が表示されない。
  例)
   1行目(可視) : 皆様こんばんは。Androidメーリングリストにはじ
   2行目(可視) : めて質問させていただきます。  ← ここに省略記号を表示したい
   3行目(不可視) : 実はかくかくしかじか


XMLの定義方法に誤りがあるのでしょうか。
それともその他の方法(TextViewの拡張 or Viewの拡張など)で独自実装する必要があるのでしょうか。

ご教授いただけると助かります。

tmmr kz

unread,
Jun 7, 2011, 9:50:02 AM6/7/11
to android-g...@googlegroups.com

Satoru Isomoto

unread,
Jun 7, 2011, 10:23:27 AM6/7/11
to android-g...@googlegroups.com
試していないので外れているかも知れませんが、

> android:lines="2"

これを、 android:maxLines="2"

にしてみてはいかがですか?

2011年6月7日22:38 tmmr kz <kz....@gmail.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com
> にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja
> からこのグループにアクセスしてください。
>

tmmr kz

unread,
Jun 7, 2011, 10:51:23 AM6/7/11
to android-g...@googlegroups.com
Isomoto様

早速の回答ありがとうございます。

android:maxLines="2"
指定してみましたが現象は変わりませんでした。
android:minLines="2"も指定してみたりしましたが、同様です。

拓也 兒玉

unread,
Jun 9, 2011, 9:28:33 PM6/9/11
to 日本Androidの会
tmmr kz様

はじめまして。

android:ellipsize="marquee"

でも同様のことができるはずですので、もしかしたらうまくいくかもしれません。
ただ私の場合別の問題が起こっておりまして、
私は3行目の末尾で省略記号を使いたいのですが、
android:lines="3"
と指定していても必ず2行目の末尾で省略記号がでてしまいます。

改行に関しては私も試しておりませんが、ご参考までに。

tmmr kz

unread,
Jun 10, 2011, 9:10:22 AM6/10/11
to android-g...@googlegroups.com
自己解決しました。

設定する文字列の中に改行が含まれていると、上手く省略文字が付かないようです。
仕方無いので、改行文字は一律空白に変換するなどして対処しました。
Reply all
Reply to author
Forward
0 new messages