我正在将我的代码迁移到 Jetpack Compose,但找不到根据内容中的某些字符应用多种样式的方法。
例如,从这段文字开始:
"℣¦Cantaré eternamente las misericordias del Señor, ≀anunciaré tu
fidelidad por todas las edades. ≀Porque dijiste: «La misericordia es
un edificio eterno», ≀más que el cielo has afianzado tu fidelidad.
℟§℣¦«Sellé una alianza con mi elegido, ≀jurando a David, mi siervo:
≀Te fundaré un linaje perpetuo, ≀edificaré tu trono para todas las
edades». ℟§℣¦Él me invocará: “Tú eres mi padre, ≀mi Dios, mi Roca
salvadora”. ≀Le mantendré eternamente mi favor, ≀y mi alianza con él
será estable. ℟"
我需要应用以下内容:
- 用相同的字符但另一种颜色替换全部
℣
或全部。℟
¦
用 4 个空格或一个制表符全部替换。≀
用一个换行符和 4 个空格或一个制表符替换所有内容。- 用双行替换所有
§
内容(或段落开头)
最终结果将是这样的:
在 Compose 之前,我可以使用 replace 来实现这一点,代码如下:
fun getFormato(sOrigen: String): String {
return sOrigen
.replace("§", BRS)
.replace("~", BR)
.replace("¦", NBSP_4)
.replace("℟", toRedFont("℟."))
.replace("℣", toRedFont("℣."))
}
中常量的值为.replace
:
const val BRS = "<br /><br />"
const val BR = "<br />"
const val NBSP_4 = " "
红色字体的方法:
fun toRedFont(s: String?): String {
return String.format("<font color=\"%s\">%s</font>", redCode, s)
}
如何在基于 Compose 的代码中应用这些样式和/或格式?
根据您的要求,以下是一种使用以下方法转换文本的方法
AnnotatedString
:演示: