Android开发 compose组件 帮我封装一个@Composable Text 实现传入两个String一个是原文另外一个是需要高亮显示的String 实现Text文本高亮显示
时间: 2023-06-23 12:08:40 浏览: 181
好的,可以参考以下代码实现:
```kotlin
@Composable
fun HighlightedText(originalText: String, highlightText: String) {
val startIndex = originalText.indexOf(highlightText)
val endIndex = startIndex + highlightText.length
Column {
if (startIndex == -1) {
Text(text = originalText)
} else {
Text(text = originalText.substring(0, startIndex))
Text(text = originalText.substring(startIndex, endIndex), style = TextStyle(color = Color.Red))
Text(text = originalText.substring(endIndex, originalText.length))
}
}
}
```
使用方法:
```kotlin
val originalText = "Hello, world! This is a test string."
val highlightText = "world"
HighlightedText(originalText, highlightText)
```
其中,`originalText` 参数是原文本,`highlightText` 参数是需要高亮显示的文本。使用 `indexOf` 方法查找需要高亮显示的文本在原文本中的位置,然后使用 `substring` 方法将原文本分割成三部分,分别为高亮文本前面的部分、高亮文本本身以及高亮文本后面的部分。将这三部分分别使用 `Text` 组件进行显示即可。其中,使用 `TextStyle` 设置高亮文本的颜色为红色。
阅读全文