Jetpack Compose - 打开键盘时脚手架底部栏隐藏 TextField

问题描述 投票:0回答:1

当我单击文本字段时,键盘打开,但底部栏覆盖了文本字段。 有没有办法让这个字段在不以编程方式滚动的情况下可见?

    Scaffold(
        modifier = Modifier.fillMaxSize().navigationBarsPadding().imePadding(),
        bottomBar = {
            Box(
                modifier = Modifier
                    .fillMaxWidth()
                    .padding(10.dp)
            ) {
                DefaultButton(
                    modifier = Modifier.align(Alignment.Center),
                    enabled = true,
                    onClick = {
                    }) {
                    Text(text = "Test")
                }
            }
        }
    ) {
        Column(
            modifier = Modifier
                .fillMaxSize()
                .verticalScroll(rememberScrollState())
                .padding(it)
        ) {

            Box(modifier = Modifier.height(2000.dp).fillMaxWidth().background(Color.Red))
            TextField(value = "Testing", onValueChange = {})
        }

    }
android-jetpack-compose scaffold
1个回答
0
投票

我看到 ImePadding 被赋予 BottomBar 的框修饰符,从框修饰符中删除 imePadding 并将其添加到 TextFields 修饰符中。

Scaffold(
    modifier = Modifier.fillMaxSize().navigationBarsPadding(),
    bottomBar = {
        Box(
            modifier = Modifier
                .fillMaxWidth()
                .padding(10.dp)
        ) {
            DefaultButton(
                modifier = Modifier.align(Alignment.Center),
                enabled = true,
                onClick = {
                }) {
                Text(text = "Test")
            }
        }
    }
) {
    Column(
        modifier = Modifier
            .fillMaxSize()
            .verticalScroll(rememberScrollState())
            .padding(it)
    ) {

        Box(modifier = Modifier.height(2000.dp).fillMaxWidth().background(Color.Red))
        TextField(modifier = Modifier.imePadding(),value = "Testing", onValueChange = {})
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.