相关疑难解决方法(0)

如何在关闭键盘时清除 TextField 焦点并防止在 Jetpack Compose 中退出应用程序时需要按两次后退?

我正在使用BasicTextField。

当我开始编辑时,后退按钮变成隐藏键盘按钮(向下箭头)。

第一次按后退按钮会隐藏键盘,但焦点仍然在文本字段上。两者onFocusChangedBackPressHandler处理程序都没有被调用。

第二次按后退按钮可清除焦点:onFocusChanged被调用且未BackPressHandler被调用。

BackHandler {
    println("BackPressHandler")
}
val valueState = remember { mutableStateOf(TextFieldValue(text = "")) }
BasicTextField(
    value = valueState.value,
    onValueChange = {
        valueState.value = it
    },
    modifier = Modifier
        .fillMaxWidth()
        .onFocusChanged {
            println("isFocused ${it.isFocused}")
        }
)
Run Code Online (Sandbox Code Playgroud)

第三次 BackHandler 工作正常。只是用它来测试,我在这里不应该需要它,它预计在第一次点击后退按钮后焦点会丢失

android android-jetpack-compose android-jetpack-compose-text

21
推荐指数
2
解决办法
1万
查看次数