【发布时间】:2021-11-22 17:29:30
【问题描述】:
在我的 UI 上选择一个按钮后,我想将粗体样式应用于我正在输入的文本 我不明白为什么只有最后一个字符加粗,而前一个字符都设置为默认样式。 我究竟做错了什么?为什么 TextField 不记得之前加粗的内容?
例子:
我想要的: 这是我想要的文本
的示例我得到了什么: 这是我想要的文本示例t
val textState = remember { mutableStateOf(TextFieldValue()) }
TextField(
value = textState.value,
onValueChange = {
val prevPos = textState.value.selection.start
if (selectedButton1.value) {
val annotatedString = buildAnnotatedString {
append(it.text)
addStyle(
SpanStyle(fontWeight = FontWeight.Bold),
prevPos,
it.text.length
)
}
textState.value = it.copy(annotatedString, it.selection, it.composition)
} else {
textState.value = it
}
},
placeholder = { Text(placeholder, style = textStyle) },
modifier = modifier,
enabled = enabled,
textStyle = textStyle,...
【问题讨论】:
标签: android textfield android-jetpack-compose