Android webview 键盘覆盖输入

Android webview keyboard covering up input

我的 android 应用程序的预期效果是有一个带有输入框和内容的 webview。当用户点击键盘时,键盘将输入框向上推,但不会调整主要内容的大小,只是覆盖在其上面,如下图所示。

我遇到的问题是键盘盖住了输入框,没有把它推上去。

目前这是一个 cordova android 应用程序。在清单中,我配置了

 <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleInstance" android:name="GigJam" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustPan">

也在config.xml:

   <preference name="Fullscreen" value="false" />

我使用 android:windowSoftInputMode="adjustPan" 来防止屏幕调整大小,这正是我想要的,因为我不希望内容被压缩。我还尝试将 css 配置为固定和绝对的输入框(基本上绑定到 webview 的底部。

根据我的理解,当键盘从输入框中的编辑中弹出时,它也会将输入框向上推,因为输入框被限制在 webview 上,而 webview 也会被向上推。

任何建议表示赞赏, 谢谢, D

Android 有一个我听的键盘事件。当 show/hide 被触发时,我抓取活动输入组件并根据键盘高度的大小变换 y 轴上的框,这可以从侦听器中的事件中抓取。当节目被触发时,我变回原形。

注意:需要为 android:windowSoftInputMode 禁用调整大小并设置为 "adjustPan"

使用这一行:

getActivity()
    .getWindow()
    .setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

android:windowSoftInputMode="adjustResize" 添加到 activity 以及 AndroidManifest.xml

中的 webview

例如:

<activity
    android:name=".MainActivity"
    android:windowSoftInputMode="adjustResize" />