我Scaffold在主屏幕上使用了一个bottomBar在应用程序的每个屏幕中都可见的固定屏幕,并且我将 的 应用于innerPadding其Scaffold内容。
我希望键盘出现在 之上bottomBar,为此我将imePadding()only应用于Scaffold应用于的内容。
但是,当键盘打开时,Scaffold和innerPadingimePadding()都会应用于内容填充。
我尝试过伴奏插入迁移,但并不幸运。
无论如何,我可以阻止它并仅应用其中之一吗?
这是我的一段代码:
Scaffold(
topBar = { },
bottomBar = { },
modifier = Modifier
.systemBarsPadding()
) { innerPadding ->
Content(
modifier = Modifier
.padding(innerPadding)
.imePadding()
)
}
Run Code Online (Sandbox Code Playgroud)
这是结果:
对于现在已弃用的伴奏插图,我使用了以下解决方案:
val isImeVisible = LocalWindowInsets.current.ime.isVisible
val contentPadding = remember(isImeVisible) {
if (isImeVisible) PaddingValues(top = innerPadding.calculateTopPadding()) else innerPadding
}
Run Code Online (Sandbox Code Playgroud) windowinsets android-jetpack-compose jetpack-compose-accompanist