fc2ブログ

spanの適用範囲の設定

今回もAndroidアプリ開発メモです.

テキストにspanを適用するときに,いまいちわかりづらいのが,そのオプション.

void setSpan(Object what, int start, int end, int flags)

のなかの第4引数(flags)がそれですね.ざっと見た限りでも,このflagsには

・SPAN_EXCLUSIVE_EXCLUSIVE
・SPAN_INCLUSIVE_EXCLUSIVE
・SPAN_EXCLUSIVE_INCLUSIVE
・SPAN_INCLUSIVE_INCLUSIVE など

とたくさんの種類があります.
いままでなんとなく,SPAN_EXCLUSIVE_EXCLUSIVEを使ってきましたが,必要に迫られたので上記の4つについて調べてみました.

AndroidのAPIなどによると,

・spanの適用範囲の直前直後に関する設定らしい.[直前の設定]_[直後の設定]となっている?
・INCLUSIVEは,spanの範囲を拡張する
・EXCLUSIVEは,spanの範囲を拡張しない


つまり,spanが適用されているテキストの直前直後に文字を追加した場合,flagsによって次のように変化します.
今の場合,"span"の範囲の文字色を赤にするspanが適用されていて,その前後に'*'を追加する場合を考えます.

【SPAN_EXCLUSIVE_EXCLUSIVE】
追加前 : This is span test.
追加後 : This is *span* test.

【SPAN_INCLUSIVE_EXCLUSIVE】
追加前 : This is span test.
追加後 : This is *span* test.

【SPAN_EXCLUSIVE_INCLUSIVE】
追加前 : This is span test.
追加後 : This is *span* test.

【SPAN_INCLUSIVE_INCLUSIVE】
追加前 : This is span test.
追加後 : This is *span* test.

このように,直前直後に追加された文字について,spanを適用するかしないかの設定となります.
(間違っていたら申し訳ないです)

他にもたくさんの種類がありますが,これらについては,時間があれば調べてみようと思います.

参考ページ:Spanned | Android Developers
関連記事

コメントの投稿

非公開コメント

プロフィール

Corgi

Author:Corgi
情報系の学科に在籍中の大学生です.
趣味でAndroidのアプリを作っています.

Twitterアカウント:@Corgi_Lab

検索フォーム
最新記事
いままでの閲覧者数
カテゴリ
 ┗ Eclipse (3)
月別アーカイブ
最新コメント