我在使用 OutlinedTextField 和连接到存储用户设置的数据存储时遇到一些问题。数据已保存并正确读取。但是,更新显示和光标似乎存在问题。当我输入文本时(可能是因为我打字太快),光标向左跳一位。这会破坏输入并且用户体验非常糟糕。
到目前为止我还没有找到解决问题的方法。你知道它可能是什么吗?非常感谢!
这就是我用于 OutlinedTextField 的代码:
OutlinedTextField(
value = dataStoreState.nickname,
onValueChange = {
CoroutineScope(Dispatchers.IO).launch {
viewModel.saveToDataStore(dataStoreState.copy(nickname = it))
}
},
label = { Text(stringResource(id = R.string.enterNickname)) },
keyboardOptions = KeyboardOptions.Default.copy(
keyboardType = KeyboardType.Text,
imeAction = ImeAction.Done
),
modifier = Modifier.fillMaxWidth()
)
Run Code Online (Sandbox Code Playgroud)
我尝试将文本值缓存在另一个变量中,但没有效果。然后我尝试更改保存功能,但我在这里也找不到正确的解决方案。