键盘第一次隐藏TextField

15

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

在AndroidManifest中,我使用了"adjustPan"。

        android:windowSoftInputMode="adjustPan"

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

这是当您第二次单击最后一个文本字段时的捕获,可以正常工作

這是程式碼

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") }
    )
}

大家知道是否有什么方法,在最后一个TextField第一次被点击时,可以防止键盘隐藏它吗?

编辑:已知此问题: 192043120


你能不能检查一下这个答案是否对你有帮助?https://dev59.com/isTra4cB1Zd3GeqPzCla#71898636 - nglauber
2个回答

1

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

克服这个问题的一个方法是使用带有verticalScroll的列。

    Column(Modifier.verticalScroll(rememberScrollState(), reverseScrolling = true){
   // Content
}

1
将以下代码放置在你的 AndroidManifest.xml 文件中的 activity 标签内:
<activity
    ...
    android:windowSoftInputMode="adjustResize|stateVisible">

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接