【发布时间】:2012-04-21 23:59:23
【问题描述】:
我目前正在将 PhoneGap 用于我正在开发的移动应用程序。在我的登录屏幕中,当我选择一个文本字段时,当键盘向上滑动时,视图会水平缩小。这只发生在 Android 而不是 iOS。
这让我很担心,因为我有一个底部工具栏position:absolute; bottom:0;,当键盘出现时,这个工具栏在 Android 中被向上推。在 iOS 中,键盘只是简单地覆盖它。
【问题讨论】:
我目前正在将 PhoneGap 用于我正在开发的移动应用程序。在我的登录屏幕中,当我选择一个文本字段时,当键盘向上滑动时,视图会水平缩小。这只发生在 Android 而不是 iOS。
这让我很担心,因为我有一个底部工具栏position:absolute; bottom:0;,当键盘出现时,这个工具栏在 Android 中被向上推。在 iOS 中,键盘只是简单地覆盖它。
【问题讨论】:
在您的主要活动的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" />
【讨论】:
在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">
现在添加以下代码inside <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,然后再重新添加。【讨论】:
添加
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi" />
到你的头标签
【讨论】: