0

如果您将 TextField 聚焦在屏幕底部附近,键盘会出现片刻,然后立即隐藏。但是,如果您从上方聚焦一些 TextField,键盘将照常打开,您可以滚动到底部。如果 windowSoftInputMode 设置为 adjustResize,就会发生这种情况。如果没有设置,那么行为会变成我会说随机(键盘可能会重叠内容,也可能会推送工具栏等)。也许我只是做错了这一切,我不知道。我想知道是否有人以前遇到过这个问题并且可以帮助我。

示例代码(为简单起见,我在这里持有可变状态,不使用 ViewModel):

@Composable
fun Greeting() {
    Scaffold(topBar = {
        TopAppBar(title = { Text(text = "Some title") })
    }) {
        val focusManager = LocalFocusManager.current
        LazyColumn(
            contentPadding = PaddingValues(all = 16.dp),
            verticalArrangement = Arrangement.spacedBy(space = 16.dp)
        ) {
            items(count = 20) { index ->
                val (value, onValueChange) = rememberSaveable { mutableStateOf("Some value $index") }
                TextField(
                    value = value,
                    onValueChange = onValueChange,
                    modifier = Modifier.fillMaxWidth(),
                    label = { Text(text = "Some label $index") },
                    keyboardOptions = KeyboardOptions(imeAction = ImeAction.Next),
                    keyboardActions = KeyboardActions(onNext = {
                        if (!focusManager.moveFocus(FocusDirection.Down))
                            focusManager.clearFocus()
                    }),
                    singleLine = true
                )
            }
        }
    }
}

撰写版本 1.0.5

4

0 回答 0