PhoneGap:有没有办法阻止键盘调整视图大小?

时间:2012-04-09 16:15:33

标签: android cordova keyboard

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

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

3 个答案:

答案 0 :(得分:26)

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

android:windowSoftInputMode="adjustPan"

android:configChanges="orientation|keyboardHidden"

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

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

答案 1 :(得分:2)

首先Eu Vid's answer,我想指出Cordova 6.4.0及更高版本支持<edit-config />我们可以用来修改AndroidManifest.xml

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

<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">

现在在 <widget />中添加以下代码

<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

注意:

  • 上面的代码不会覆盖<activity>块,而是与它合并;它只会替换指定的xml属性。
  • 如果您事先已致电cordova platform add android,则可以在再次添加cordova platform rm android之前先将其删除。

答案 2 :(得分:-1)

添加

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

到你的头标记