alf*_*tap 13 android android-jetpack-compose
我正在使用下面的代码尝试将焦点请求到文本字段并显示键盘。目前,文本字段确实请求焦点,但键盘无法显示。相同的代码在我正在处理的另一个项目中工作,但这里的区别是此代码位于可组合对话框内,而其他代码不是,所以我不确定是否是对话框导致键盘无法显示?
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 {}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
val focusRequester = FocusRequester()
LocalView.current.viewTreeObserver.addOnWindowFocusChangeListener {
if (it) focusRequester.requestFocus()
}
Run Code Online (Sandbox Code Playgroud)
这对我有用,在对话框窗口获得焦点后,文本字段的请求焦点将自动显示软键盘。
| 归档时间: |
|
| 查看次数: |
3928 次 |
| 最近记录: |