我需要为按钮添加键盘填充,但间距太大。关于如何减小尺寸以使按钮保持在键盘顶部边缘的任何解决方案?
这是代码:
Scaffold(
floatingActionButton = {
CustomFloatingActionButton(
text = "",
icon = { Icon(imageVector = ImageVector.vectorResource(R.drawable.ic_pencil_plus), contentDescription = "") },
onClick = {
navController.navigate(
ScreenItem.ModifyNote.route
)
},
Modifier.imePadding()
)
},
floatingActionButtonPosition = FabPosition.Center,
scaffoldState = scaffoldState
)
我还将其添加到 AndroidManifest.xml 中:
android:windowSoftInputMode="adjustResize"
编辑 1:CustomFloatingButton 不包含任何特殊内容,它只是 FAB 的一个简单包装。
编辑 2:使用
Compose 1.2.1
和 Material 2
您的代码不完整且不易测试。 无论如何,您可以将
WindowInsets(0, 0, 0, 0)
传递给 Scaffold
,然后将 padding(scaffoldPadding).consumeWindowInsets(scaffoldPadding).systemBarsPadding()
内部应用到支架。
类似:
Scaffold(
modifier = Modifier.imePadding(),
contentWindowInsets = WindowInsets(0, 0, 0, 0),
floatingActionButton = {
ExtendedFloatingActionButton(
modifier = Modifier.systemBarsPadding(),
//...
)
},
floatingActionButtonPosition = FabPosition.Center,
){
Box(Modifier
.fillMaxSize()
.padding(it).consumeWindowInsets(it).systemBarsPadding()
) {
//...
}
}