【问题标题】:PhoneGap: Is there a way to stop the keyboard from resizing the view?PhoneGap:有没有办法阻止键盘调整视图大小?
【发布时间】:2012-04-21 23:59:23
【问题描述】:

我目前正在将 PhoneGap 用于我正在开发的移动应用程序。在我的登录屏幕中,当我选择一个文本字段时,当键盘向上滑动时,视图会水平缩小。这只发生在 Android 而不是 iOS。

这让我很担心,因为我有一个底部工具栏position:absolute; bottom:0;,当键盘出现时,这个工具栏在 Android 中被向上推。在 iOS 中,键盘只是简单地覆盖它。

【问题讨论】:

    标签: android cordova keyboard


    【解决方案1】:

    在您的主要活动的AndroidManifest.xml 中添加以下内容:

    android:windowSoftInputMode="adjustPan"
    

    android:configChanges="orientation|keyboardHidden"
    

    index.html 中添加创伤指出的内容:

    <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi" />
    

    【讨论】:

    • 走这条路,不会是键盘盖住了输入框吧。从那里,用户将看不到他们正在输入的内容。
    • @darewreck 提出了一个很好的观点,因为我遇到了这个确切的问题并实施了这个解决方案,并且由于这个确切的原因它对我不起作用。对我来说,我想我必须找到一个解决方案,我可以弄清楚如何确定是否显示键盘,分配给一个变量并基于此切换我的底栏的可见性,因为字段行为更好原始设置。虽然答案是正确的,但冒险者的观点非常有效
    【解决方案2】:

    Eu Vid's answer之上,我想指出Cordova 6.4.0及更高版本支持&lt;edit-config /&gt;,我们可以使用它来修改AndroidManifest.xml

    首先,您需要添加 android 命名空间属性。在您的config.xml 中,将新属性xmlns:android="http://schemas.android.com/apk/res/android" 添加到&lt;widget /&gt;。您的小部件块应如下所示:

    <widget
        id="com.my.app"
        version="0.0.1"
        xmlns="http://www.w3.org/ns/widgets"
        xmlns:cdv="http://cordova.apache.org/ns/1.0"
        xmlns:android="http://schemas.android.com/apk/res/android">
    

    现在添加以下代码inside &lt;widget /&gt;:

    <edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application/activity">
        <activity android:configChanges="orientation|keyboardHidden" android:windowSoftInputMode="adjustPan" />
    </edit-config>
    

    现在当您调用cordova platform add android 时,将使用上述设置生成AndroidManifest.xml

    注意:

    • 上面的代码并没有覆盖&lt;activity&gt;块而是与其合并;它只会替换指定的 xml 属性。
    • 如果您之前已经调用过cordova platform add android,您可以先输入cordova platform rm android,然后再重新添加。

    【讨论】:

      【解决方案3】:

      添加

          <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi" />
      

      到你的头标签

      【讨论】:

      • 您是否在AndroidManifest.xml 中添加了第二个活动标签? 对于 Phonegap 1.4.x 及更早版本,将包名称更改为 com.phonegap.DroidGap
      猜你喜欢
      • 1970-01-01
      • 2014-09-14
      • 2012-10-19
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      相关资源
      最近更新 更多