gpt4 book ai didi

android - 在 Compose 中停止键盘将顶部应用栏推离屏幕

转载 作者:行者123 更新时间:2023-12-05 04:19:39 26 4
gpt4 key购买 nike

我有一个 Compose Activity ,其中有一个顶部应用栏和一些朝向屏幕底部的 TextFields。当我专注于其中一个 TextFields 并调用键盘时,我希望文本字段出现在键盘上方,这样我就可以看到我正在输入的内容。这工作正常,但是整个屏幕内容被向上推,使顶部应用栏消失或在顶部被截断。

我认为理想情况下,顶部应用栏将固定在顶部,只有下面的内容会移动。顶部应用栏是脚手架的一部分,还是位于 Column 中的脚手架之上都没有关系:

    Scaffold(
topBar = {
TopAppBar("...")
}
) {
// scrollable contents with TextFields
}

---> OR

Column {
TopAppBar("...")
Scaffold {
// scrollable contents with TextFields
}
}

这是图示的不良行为:

enter image description here

有没有办法实现我想要的固定顶部应用栏的行为?在 Compose 中,顶部应用栏是否应该默认向上推?

最佳答案

看来您必须为其中一个可组合项指定权重。

从这个 post 的答案中获取一些引用.假设您在 list 中设置了 adjustResize

android:windowSoftInputMode="adjustResize"/>

你可以认为这是一个粗略的解决方案

Scaffold(
topBar = {
TopAppBar(title = { Text("Hello World")})
}
) {
Column(
modifier = Modifier
.fillMaxSize()
.padding(it)
) {

Box(
modifier = Modifier
.weight(1f)
.background(Color.Gray)
.fillMaxWidth()
)

Box(
modifier = Modifier
.fillMaxWidth()
.wrapContentHeight()
.background(Color(0xFF6f4d8c)),
contentAlignment = Alignment.Center
) {
TextField(
value = "User Name",
onValueChange = {}
)
}

Box(
modifier = Modifier
.fillMaxWidth()
.wrapContentHeight()
.background(Color(0xFF6286bd)),
contentAlignment = Alignment.Center
) {
TextField(
value = "Password",
onValueChange = {}
)
}
}
}

enter image description here

我只是放了一些颜色来显示小部件如何占据其父列中的空间。

关于android - 在 Compose 中停止键盘将顶部应用栏推离屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74742358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com