gpt4 book ai didi

android - Jetpack Compose 焦点请求器不使用对话框

转载 作者:行者123 更新时间:2023-12-04 23:40:53 28 4
gpt4 key购买 nike

我正在使用以下代码尝试将焦点请求到文本字段并启动键盘。目前,文本字段确实请求焦点,但键盘无法显示。相同的代码在我正在处理的另一个项目中工作,但这里的不同之处在于此代码在 Dialog 可组合内,而其他代码不在,所以我不确定它是否是 Dialog 使键盘无法显示?

val textField = remember { FocusRequester() }

Dialog(onDismissRequest = {
openDialog.value = false
dialogInput.value = ""
}) {

Column(
modifier = Modifier
.height(274.dp)
.background(Color.Transparent)
.clickable {
openDialog.value = false
dialogInput.value = ""
}
) {

OutlinedTextField(
modifier = Modifier
.height(64.dp)
.background(Color.White)
.focusRequester(textField),
label = {
Text(
text = label,
style = MaterialTheme.typography.body2.copy(color = Color.Black)
)
},
value = dialogInput.value,
onValueChange = {
dialogInput.value = it
events.filterPlayers(it)
},
textStyle = MaterialTheme.typography.body2.copy(color = Color.Black),
colors = TextFieldDefaults.textFieldColors(
backgroundColor = Color.White,
unfocusedIndicatorColor = Color.White,
focusedIndicatorColor = Color.White
)
)

DisposableEffect(Unit) {
textField.requestFocus()
onDispose {}
}
}

最佳答案

val focusRequester = FocusRequester()
LocalView.current.viewTreeObserver.addOnWindowFocusChangeListener {
if (it) focusRequester.requestFocus()
}
这项工作对我来说,在对话框窗口获得焦点后,TextField 的请求焦点将自动显示软键盘。

关于android - Jetpack Compose 焦点请求器不使用对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69750447/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com