android - 为什么打开键盘时键盘会与我的 View 内容重叠

标签 android android-jetpack-compose

我正在使用 Android Compose 在我的应用中实现新的 UI。不幸的是,当键盘打开时,我的 View 内容被隐藏了。
请在下面找到一些详细信息:

 @Composable
  private fun OnBoardingAddressScreen() {
    var address by remember { mutableStateOf("") }
    val space = 35.dp
    val horizontalPadding = resources.getDimension(R.dimen.horizontal_padding).dp


    Column(modifier = Modifier.fillMaxSize()) {
      OnBoardingTopContent()
      Spacer(modifier = Modifier.size(space))
      OnboardingAddressContent(
        address = address,
        onAddressChange = { address = it },
        onBoardingButtonClick =
        {
        },
        horizontalPadding
      )
    }
  }

  @Composable
  private fun OnboardingAddressContent(
    address: String,
    onAddressChange: (String) -> Unit,
    onBoardingButtonClick: () -> Unit,
    horizontalPadding: Dp
  ) {
    Column(modifier = Modifier
      .fillMaxSize()) {
      Text(
        modifier = Modifier
          .fillMaxWidth()
          .padding(horizontal = horizontalPadding),
        fontSize = 35.sp,
        maxLines = 3,
        text = "Welcome", fontWeight = FontWeight.Bold
      )
      Image(
        modifier = Modifier
          .align(alignment = Alignment.CenterHorizontally)
          .size(330.dp, 330.dp),
        painter = painterResource(R.drawable.onboarding_image),
        contentDescription = null
      )
      OutlinedTextField(
        modifier = Modifier
          .fillMaxWidth()
          .padding(horizontal = horizontalPadding),
        value = address,
        onValueChange = onAddressChange,
        keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text),
        label = { Text("Your content") }
      )
      Box(modifier = Modifier.fillMaxSize()){
        Image(
          modifier = Modifier.align(Alignment.BottomStart),
          painter = painterResource(R.drawable.onboarding_bottom_background),
          contentDescription = null
        )
        Button(
          modifier = Modifier
            .fillMaxWidth()
            .height(56.dp)
            .align(Alignment.BottomCenter)
            .padding(horizontal = horizontalPadding),
          shape = RoundedCornerShape(10.dp),
          content = { Text("Navigate") },
          onClick = onBoardingButtonClick
        )
      }
    }
  }
结果在这里:
enter image description here
enter image description here
请注意 :
  • 我正在使用 android:windowSoftInputMode="adjustPan"在我的 list 中并尝试使用 android:windowSoftInputMode="adjustResize"但我仍然有问题

  • 预先感谢您的帮助

    最佳答案

    当键盘显示时,您可以在屏幕底部添加一个空布局,然后您将显示空布局,当键盘消失时,您可以隐藏空布局。

    关于android - 为什么打开键盘时键盘会与我的 View 内容重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70504976/

    相关文章:

    android - 附加了 ORMlite 的 Javadoc,但 Eclipse 找不到

    java - 从 onActivityResult() 调用时,notifyDataSetChanged() 不适用于我的 RecyclerView.Adapter

    android - 在 Jetpack Compose 中使用 LaunchedEffect 与 SideEffect

    java - 为什么jetpack compose中没有热重载?理论上他们将来是否有可能在 compose 中添加类似热重载的 flutter 功能?

    android - 是否可以通过 firebase auth 仅使用短信服务和离线注册用户,即没有互联网

    android - 屏幕方向更改后继续 Activity - Android

    android - 将 Android 应用程序图标转换为 iOS 应用程序图标

    android - 何时在 Jetpack Compose 中使用衍生状态?

    Android Jetpack 撰写从图像旁边开始并在图像下方继续的文本

    android - Jetpack Compose 预览未显示