【问题标题】:Android 2.2 Web View windows moves up when Virtual Keyboard appears出现虚拟键盘时,Android 2.2 Web 视图窗口向上移动
【发布时间】:2011-02-23 09:46:02
【问题描述】:

我正在 Android 上使用 Phonegap 开发应用程序。在 OS 2.1 上一切正常,但在 OS 2.2 上,当我们单击任何输入类型文本字段时,键盘会出现并且整个窗口移动到 UP 侧并且输入类型字段变得不可见。谁能告诉我到底是什么问题,可以使用javascript解决吗?如何在 Android 2.2 上停止窗口大小调整功能?

我在Text Input on android phone is not in view when the keyboard for webview comes up? 上也发现了同样的问题,但没有找到解决方案。

【问题讨论】:

    标签: javascript android scroll cordova


    【解决方案1】:

    添加这个

    android:windowSoftInputMode="adjustPan"
    

    到你的 AndroidManifest.xml 将解决问题

    【讨论】:

    【解决方案2】:

    我尝试添加以下 css 属性,它在 Android 2.2 上为我工作

    html,正文{溢出:隐藏;}

    不知道为什么它在工作,但它在工作......

    注意:我使用“iScroll”插件在我的应用程序中滚动。

    【讨论】:

    • 这对我来说非常有效,而且我没有使用 iScroll。我的主要应用程序元素使用 -webkit-box 在正文中居中。
    【解决方案3】:

    我从未使用过 PhoneGap,但我访问了他们的网站,我了解到它仍然可以通过 Eclipse 和 ADT 工作;如果是这种情况,则可以通过 AndroidManifest.xml 文件解决此问题,方法是将以下内容添加到调用软键盘的活动的 <activity> 标记中:

    <activity android:windowSoftInputMode="adjustNothing"
              //other flags
    />  
    

    其实好像不是这样的。我正在阅读的 API 文档实际上是针对 Honeycomb 的,这个标志不在 2.2 中。对不起。我最近的所有工作都是在平板电脑上进行的,我忘记了我最近一直在准备阅读的 SDK 版本。

    【讨论】:

      【解决方案4】:

      您可能必须启用此脚本以避免您的应用在文本输入字段获得焦点时滚动:)

      function preventBehavior(e) 
      { 
        e.preventDefault(); 
      };document.addEventListener("touchmove", preventBehavior, false);
      

      【讨论】:

      • 通过点击文本字段,没有任何反应,虚拟键盘不出现。
      【解决方案5】:

      当页面中有一个具有“transform”css属性的元素时(如transform: translate3d(0px, 0px, 0px);),android 2.2上的这种行为会附加 删除这些声明为我解决了这个问题。 (溢出:也隐藏,但您不能再滚动应用程序)

      PS:不幸的是,重写声明不起作用

      【讨论】:

        猜你喜欢
        • 2018-05-21
        • 1970-01-01
        • 1970-01-01
        • 2014-01-27
        • 2013-09-06
        • 2015-11-29
        • 2014-02-07
        • 2017-10-29
        相关资源
        最近更新 更多