【Android】 SpannableStringBuilderで箇条書きを実装する
はじめに
Androidアプリを開発している時に、箇条書きで表現する箇所が出てきたので備忘録がてらまとめました。
環境
Android Studio: 4.2.2
Kotlin: 1.4.31
OS: Mac OS X 11.5.2 x86_64
実装
val text = "aaa"
val spannableStringBuilder = SpannableStringBuilder("")
spannableStringBuilder.append(
text,
context?.let { ContextCompat.getColor(it, R.color.black) }?.let {
BulletSpan(20,it)
},
SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE
)
context?.let { ContextCompat.getColor(it, R.color.black) }?.let { BulletSpan(20,it) },
箇条書きの・
の色を宣言します。自由に設定できるので箇条書きにする文の文字色に合わせたり、好きに設定してください。
spannableStringBuilder.append( text, context?.let { ContextCompat.getColor(it, R.color.black) }?.let { BulletSpan(20,it) }, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE )
String型で宣言した textに・
を追加していきます。
最後にbuilder
をtextViewに入れることで箇条書きで反映されます。
デモ
実装に記載したコードをfor文で繰り返して各textに反映させることで以下のように表示されました。
参考文献
Spans - Android Developers
https://developer.android.com/guide/topics/text/spans
BulletSpan - Android Developers
https://developer.android.com/reference/android/text/style/BulletSpan