SpannableString Java Android Development
Ну короче я хочу покрасить пару скобок с помощью SpannableString, но столкнулся с одной проблемой, надо покрасить только скобки, не затрагивая то, что внутри, и вокруг скобок. А если есть лишние скобки, чтоб они не окрашивались. Вообщем я прикреплю набросок, чтобы было лучше понять меня.
Ответы (1 шт):
Автор решения: Circassian
→ Ссылка
На котлине можно так например
fun highlightBrackets(str: String) = buildSpannedString {
var isBracketOpened = false
str.forEach { ch ->
when {
ch == '(' -> {
isBracketOpened = true
appendBracket(ch)
}
ch == ')' && isBracketOpened -> {
isBracketOpened = false
appendBracket(ch)
}
else -> append(ch)
}
}
}
fun SpannableStringBuilder.appendBracket(ch: Char) {
append(SpannableString(ch.toString()).apply {
setSpan(ForegroundColorSpan(Color.RED), 0, this.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
})
}