gpt4 book ai didi

android - 软件键盘与 jetpack compose View 的内容重叠

转载 作者:行者123 更新时间:2023-12-03 21:10:30 25 4
gpt4 key购买 nike

假设我有一些关于 jetpack-compose 内容的 Activity

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
ScrollableColumn(
modifier = Modifier
.fillMaxSize()
.border(4.dp, Color.Red)
) {
val (text, setText) = remember { mutableStateOf("") }

TextField(
value = text,
onValueChange = setText,
label = {},
modifier = Modifier
.fillMaxWidth()
)

for (i in 0..100) {
Text("Item #$i")
}
}
}
}

}

如果我要启动此 Activity 并专注于 TextField,则会弹出一个软件键盘。
但是,界面不会对此使用react。 ScrollableColumn 的底部边框 ( .border(4.dp, Color.Red)) 以及第 100 项 ( Text("Item #$i")) 将不可见。
换言之,软键盘与内容重叠。
我怎样才能让jetpack compose尊重可见区域的变化(由于软件键盘)?

最佳答案

您可以使用标准的 android 程序,但我不知道是否存在 Compose 特定的方式。
如果将 SoftInputMode 设置为 SOFT_INPUT_ADJUST_RESIZE ,布局将在键盘更改时调整大小。

class YourActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {

window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

setContent { /* Composable Content */ }
}
}
否则,您可以使用 list 中的标志。浏览此处获取更多信息:
Move layouts up when soft keyboard is shown?

关于android - 软件键盘与 jetpack compose View 的内容重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64050392/

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