修复 Android 键盘大小调整和 Ionic (inputShims) 中的输入模糊问题

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

大家好

我不确定谁需要听到这个,但我当然希望我早点知道这一点。

长期以来,在使用 Ionic/Angular 构建应用程序时,我一直在努力让键盘在 Android 设备上表现得流畅且可预测。主要问题是键盘经常会突然调整布局大小并覆盖输入字段,总体上造成糟糕的用户体验。

我花了很多时间寻找解决方案,调整不同的配置,并试图找到一种方法来防止键盘引起这些问题。

我尝试在 Android 清单中使用

android:windowSoftInputMode="adjustPan"
,但这并没有解决问题。 我还尝试在电容器配置中使用不同的
keyboardResize
选项(
Ionic
Body
Native
),但它们都没有给我带来我想要的流畅行为。

经过更多搜索后,我在 Github 上发现了一个关于 Ionic 官方文档中没有详细记录的利基的线程 - 至少我找不到。这个功能最终解决了我的问题。

我将在下面的回答中提供解决方案:)

android angular ionic-framework keyboard capacitor
1个回答
1
投票

我遇到了这个 GitHub 线程,其中他们提到了一个名为

InputShims
的配置设置,它有助于修复一些 Android 特定的行为 - 例如键盘如何与输入字段交互。

一位 Ionic 工程负责人指出,默认情况下,滚动辅助在 Android 上并未启用,仅在 iOS 上启用。因此,为了在 Android 上包含滚动辅助,您必须将

inputShims: true
添加到配置中,如下所示:

IonicModule.forRoot({ inputShims: true })

他们还提到,如果启用了 webview 调整大小,滚动辅助将不起作用,这应该稍后修复。但由于该线程已有 4-5 年历史,我还没有真正注意到将

resize
设置为
None
Ionic
之间的区别。 这就是说..这是最初的建议:

JSON 格式

{
  "plugins": {
    "Keyboard": {
      "resize": "none"
    }
  }
}

或者如果打字稿:

  plugins: {
    Keyboard: {
      resize: KeyboardResize.None,
    },
  },

再次,我不确定这是否会帮助其他人处理 Android 键盘,它肯定对我有帮助。也许我只是慢了或者也许我错过了一些东西..但现在它就在这里,也许它可以拯救其他人。

祝你有美好的一天:)

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