减小 Jetpack Compose Material 2 中的 imePadding() 大小

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

我需要为按钮添加键盘填充,但间距太大。关于如何减小尺寸以使按钮保持在键盘顶部边缘的任何解决方案?

enter image description here

这是代码:

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

android android-jetpack-compose padding
1个回答
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()
    ) {
        //...
    }

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