【问题标题】:How to unhide a TextField hidden by keyboard in Compose如何在 Compose 中取消隐藏键盘隐藏的 TextField
【发布时间】:2021-08-23 17:58:45
【问题描述】:

所以我有一个主要活动,其中有 3 个从顶部偏移的 TextField,因为我使用的是选项卡式导航:

但在小屏幕上发生的情况是键盘隐藏了第三个文本字段“Receiver”。

我该如何解决这个问题?使用 ScrollableLayout 会是一个解决方案(因此用户可以滚动到 unhide 第三个文本字段)?

【问题讨论】:

    标签: android kotlin android-jetpack-compose


    【解决方案1】:

    您可以通过三个步骤使用Accompanist Insets library 实现此目的:-

    1- 在您的活动调用 setDecorFitsSystemWindows

    WindowCompat.setDecorFitsSystemWindows(window, false)
    

    2- 调用 ProvideWindowInsets 函数并包装您的内容

    ProvideWindowInsets {
      // your content
    }
    

    3- 在您的内容中调用 navigationBarsWithImePadding 修饰符

    完整示例:-

    WindowCompat.setDecorFitsSystemWindows(window, false)  // step 1
    setContent {
        MaterialTheme {
            ProvideWindowInsets { // step 2
                Column(
                    modifier = Modifier
                        .navigationBarsWithImePadding() // step 3
                ) {
                    // your content
                }
            }
        }
    }
    

    【讨论】:

      【解决方案2】:
      <application ... >
          <activity
              android:windowSoftInputMode="adjustResize|adjustPan" ... >
              ...
          </activity>
          ...
      </application>
      

      将此添加到您的清单中

      https://developer.android.com/training/keyboard-input/visibility[Documentation][1]

      android:windowsSoftInputMode 定义元素的定位。

      【讨论】:

      • 添加这个并不会改变任何事情
      【解决方案3】:

      将此粘贴​​到 setContent 之前的 onCreate 中

      window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)

      学分:- https://stackoverflow.com/a/64053897/15880865

      .

      【讨论】:

      • 不工作(至少在 API 30 上)最明显是因为它在 API 26 中被贬值了
      【解决方案4】:

      所以我设法使用accompanist library 并将修饰符设置为Modifier.navigationBarsWithImePadding() 来做到这一点

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-17
        • 2021-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-29
        • 2019-06-08
        相关资源
        最近更新 更多