1

我在 Jetpack Compose 中有一个布局,其中有几个需要保持在屏幕顶部的可组合项(文本视图和输入),然后是我需要保持连接到底部的另一个可组合项(按钮)屏幕。当打开键盘输入文本输入时,我需要连接到屏幕底部的按钮来向上移动,但这并没有发生。

ProvideWindowInsets(windowInsetsAnimationsEnabled = true) {
    Column(
        verticalArrangement = Arrangement.SpaceBetween,
        modifier = Modifier
            .fillMaxSize()
            .statusBarsPadding()
            .padding(0.dp, 32.dp, 0.dp, 0.dp)
            .navigationBarsWithImePadding()
            .verticalScroll(rememberScrollState()),

    ) {
        Column {
            
            CustomHeading6(
                modifier = Modifier.padding(0.dp, 0.dp, 0.dp, 32.dp),
                title = "Enter Email"
            )

            CustomBody1(
                modifier = Modifier.padding(0.dp, 0.dp, 0.dp, 12.dp),
                content = "Email:"
            )

            CustomEmailTextField(
                modifier = Modifier.padding(0.dp, 0.dp, 0.dp, 20.dp),
                text = viewModel.emailAddress,
                onValueChanged = { //removed }
            )
        }

        Column {
            CustomButton(
                modifier = Modifier.padding(0.dp, 32.dp),
                title = "Submit",
                onButtonClick = { //removed }
            )
        }
    }
}

我试图通过将每组项目包装在它们自己的列中,然后在包装列上使用 Arrangement.SpaceBetween 来实现对顶部/底部的附加,但这可能不正确。我也尝试不这样做,而是将 .weight(1f) 添加到列中,并在顶部附加可组合项。这些都不允许布局随键盘向上移动。

我在主要活动中也有这个:

 WindowCompat.setDecorFitsSystemWindows(window, false)

    setContent {
        ProvideWindowInsets {
            Theme {
                      // my content
            }
         }
     }

这在我的活动清单中:

android:windowSoftInputMode="adjustResize"
4

0 回答 0