键盘第一次隐藏 TextField

Dev*_*oid 16 android adjustpan android-jetpack-compose lazycolumn

我创建了一个简单的示例,在 LazyColumn 中包含六个 TextField,当您单击最后一个 TextField 时,键盘会隐藏它,如果您隐藏键盘并再次单击最后一个 TextField,则工作正常。

在 AndroidManifest 中我使用“adjustPan”

        android:windowSoftInputMode="adjustPan"
Run Code Online (Sandbox Code Playgroud)

这是您第一次单击最后一个文本字段时的捕获,隐藏最后一个文本字段

这是您第二次单击最后一个 TextField 时的捕获,工作正常

这是代码

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            TestComposeTheme {
                val numbers = listOf(1,2,3,4,5,6)
                LazyColumn() {
                    items(numbers) { index->
                        TextField(index = index)
                    }
                }
            }
        }
    }
}
@Composable
fun TextField(index: Int){
    var text by remember { mutableStateOf("Hello$index") }
    TextField(
        modifier = Modifier.padding(25.dp),
        value = text,
        onValueChange = { text = it },
        label = { Text("TextField$index") }
    )
}
Run Code Online (Sandbox Code Playgroud)

有谁知道是否有任何方法可以在第一次点击最后一个 TextField 时阻止键盘隐藏它

编辑:有一个已知问题: 192043120

Nik*_*nna 2

这已经是一个已知问题。https://issuetracker.google.com/issues/192043120

解决这个问题的一个技巧是使用带有 VerticalScroll 的列

    Column(Modifier.verticalScroll(rememberScrollState(), reverseScrolling = true){
   // Content
}
Run Code Online (Sandbox Code Playgroud)