【问题标题】:Android webview keyboard covering up inputAndroid webview 键盘覆盖输入
【发布时间】:2016-09-21 22:04:07
【问题描述】:

我的 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。

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

【问题讨论】:

  • 你解决了吗?我面临同样的问题,通常在 Android 中,adjustPan 将输入推送到键盘顶部,以便它们始终可见,并且如您所说,不会挤压内容。但是在我的 Phonegap 应用程序中,输入没有向上推。
  • 哦,废话,我没有注意到接受的答案是您添加的。

标签: android css cordova android-softkeyboard adjustpan


【解决方案1】:

Android 有一个键盘事件,我会听。当触发显示/隐藏时,我抓取活动输入组件并将 y 轴上的框转换为键盘高度的大小,可以从侦听器中的事件中抓取。当节目被触发时,我变回原形。

注意:android:windowSoftInputMode 需要禁用 resize 并设置为“adjustPan”

【讨论】:

  • 那是哪个事件?我可以做一个focus 事件,但我认为这会在默认情况下行为正确的 IOS 上搞砸整个事情。
  • 请给出准确的解决方案
【解决方案2】:

使用这一行:

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

【讨论】:

    【解决方案3】:

    android:windowSoftInputMode="adjustResize"添加到AndroidManifest.xml中带有webview的activity

    例如:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多