从WebView打开softinput时,Android窗口不会调整大小/平移

时间:2013-12-05 12:06:55

标签: android android-fragments android-webview

我的问题在于。

  1. 应用使用主题android:Theme.NoTitleBar.Fullscreen,只有一个Activity,所有其他观看次数为Fragment
  2. WebView内的ViewPager Fragment位于ScrollView
  3. HTML内容包含输入字段
  4. 点击WebView
  5. 底部的输入字段
  6. 软输入打开,但Window未调整大小/平移
  7. 我已尝试在android:windowSoftInputMode="adjustResize"的清单中设置android:windowSoftInputMode="adjustPan"Activity。还尝试在java中设置其中一个。

    我的应用程序中EditText内的正常ScrollView确实正确调整了平移,因此用户可以看到他/她正在键入的位置。

    更新:

    如果没有工作解决方案来调整窗口,有没有办法让WebView认为它的内容就像半屏高度更大,这样用户至少可以滚动输入。

4 个答案:

答案 0 :(得分:7)

好的,所以这从一开始就是一个问题,谷歌还没有修复它,也许永远不会。但是从问题:http://code.google.com/p/android/issues/detail?id=5497我找到了可能的解决方法:https://stackoverflow.com/a/19494006/1241783

我已经覆盖了WebView,我只是为它添加了代码,它运行良好,可以调整窗口。尽管代码并不总是有效,但由于屏幕高度不同而且可能需要进行一些调整,但在很多情况下它可以正常工作,我会继续使用它,因为它是我见过的唯一可行的解​​决方案。

答案 1 :(得分:3)

在ScrollView中尝试此android:isScrollContainer="false"。根据Android docx。

  

如果视图将用作滚动容器,则设置此项,这意味着   它可以调整大小以缩小其整体窗口,以便有   输入法的空间

希望这能解决您的问题

答案 2 :(得分:1)

以下是我们为使其发挥作用所做的工作。 按照设计,FLAG_FULLSCREEN活动不允许在键盘可见时调整视图,我们采用自定义键盘通知侦听器和Webview OnTouch监听器的方法。

KeyboardHelper.java - 找出键盘可见性

Webview Full-Screen Activity Adjustment - 根据通知和触摸点调整网络视图。

希望它有所帮助!

答案 3 :(得分:0)

键盘打开时,我的代码也无法调整大小。

<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/simple_webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:scrollbars="none"
    />

我删除了(android:scrollbars =“ none”)语句,它起作用了!因此,这意味着应用仅在容器可滚动时才调整自身大小。因此默认情况下,webview容器在内部可滚动区域。