Olá,
Aqui iremos saborear uma pouco mais sobre SpannableString. Quando você se deparar com uma customização de texto para o seu aplicativo Android, saiba que a melhor opção é usar as classes Spannable.
-> O método setSpan().
fun setSpan( objeto: Object, começo: Int, fim: Int, flag : Int)objeto: aqui objeto de marcação para adicionar algum estilo ou funcionalidade ao texto.
começo: nós marcamos a primeira posição do caracter que será modificado.
fim: nós marcamos a última posição do caracter que será modificado.
flag: uma constante proveniente da classe Spanned, é aqui que é definido o comportamento do texto:
Get Pizza crizza’s stories in your inbox
Join Medium for free to get updates from this writer.
SPAN_COMPOSING -> Esse sinalizador é definido em extensões que estão sendo usadas para aplicar informações de estilo temporárias no texto de composição de um método de entrada, para que possam ser encontradas e removidas quando o texto de composição estiver sendo substituído.
SPAN_EXCLUSIVE_EXCLUSIVE-> As extensões do tipo SPAN_EXCLUSIVE_EXCLUSIVE não se expandem para incluir o texto inserido no ponto inicial ou final, ou seja, a única modificação do texto será feita apenas dentro do “começo” e “fim”.
SPAN_EXCLUSIVE_INCLUSIVE -> As extensões sem tamanho 0 do tipo SPAN_EXCLUSIVE_INCLUSIVE se expandem para incluir texto inserido no ponto final, mas não no ponto inicial.
SPAN_INCLUSIVE_EXCLUSIVE -> As extensões sem tamanho 0 do tipo SPAN_INCLUSIVE_EXCLUSIVE se expandem para incluir texto inserido no ponto inicial, mas não no ponto final.
SPAN_INCLUSIVE_INCLUSIVE -> As extensões do tipo SPAN_INCLUSIVE_INCLUSIVE se expandem para incluir o texto inserido no ponto inicial ou final.
Lembrando que o começo e o fim (star/end) estão diretamente ligados ao objeto, será aqui o direcionamento de que ponto a ponto será atribuida a mudança. Por exemplo:
Temos uma string “pizza de calabresa”, se contarmos todos os caracteres inclusive os espaços teremos 18 caracteres. Se quisermos mudar a cor apenas a palavra calabresa , então fariamos assim:
val stringText = "pizza de calabresa"
val spannableString = SpannableString(stringText)
val fcsRed = ForegroundColorSpan(Color.RED)
spannableString.setSpan(fcsRed,10,18,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)Esses são alguns exemplos de flags do método setSpan, para mais informações acesse: developers
Buon appetito!






