Mat*_*haN 37 android-jetpack-compose android-jetpack-compose-text
我在文本字段上方有文本建议芯片视图列表,当用户单击芯片时,我将文本附加到文本字段中。之后我想将光标移动到结束位置。我在 Jetpack compose 中找不到此问题的解决方案。之前我们曾经editText.setSelection(position)在 Android 视图中更改光标位置。
如何在jetpack compose Textfield中设置光标位置?
OutlinedTextField(
value = value,
onValueChange = { value = it },
maxLines = 8,
label = {
Text(
text = "Content",
maxLines = 1
)
},
modifier = Modifier
.fillMaxWidth()
.height(200.dp),
shape = RoundedCornerShape(2.dp),
)
Run Code Online (Sandbox Code Playgroud)
Cur*_*aph 52
我们可以用来TextFieldValue改变光标位置
TextFieldValue像这样初始化
var textFieldValueState by remember {
mutableStateOf(
TextFieldValue(
text = ""
)
)
}
Run Code Online (Sandbox Code Playgroud)
初始化后设置TextFieldValue如下
OutlinedTextField(
value = textFieldValueState,
onValueChange = { textFieldValueState = it },
...
)
Run Code Online (Sandbox Code Playgroud)
要附加附加文本并进行光标选择,请按照下列步骤操作
IconButton(modifier = Modifier.then(Modifier.size(48.dp)),
onClick = {
val value = textFieldValueState.text.plus("****")
textFieldValueState = TextFieldValue(
text = value,
selection = TextRange(value.length-2)
)
})
Run Code Online (Sandbox Code Playgroud)
TextFieldValue text并且selection变量是不可更改的,因此我们需要创建新的变量TextFieldValue来设置文本和光标位置。
| 归档时间: |
|
| 查看次数: |
27144 次 |
| 最近记录: |