PhoneGap:有没有办法阻止键盘调整视图大小?
问题描述:
我目前正在使用phonegap进行移动应用程序开发。在我的登录屏幕中,当我选择文本字段时,当键盘向上滑动时,视图会水平收缩。这只发生在Android而不是iOS上。PhoneGap:有没有办法阻止键盘调整视图大小?
这关注我,因为我有一个底部的工具栏,它是position:absolute; bottom:0;
,当键盘出现时,此工具栏在Android中被推上去。在iOS中,键盘只是覆盖它。
答
在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" />
答
添加
<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,我想指出的是,科尔多瓦6.4.0及以上的有<edit-config />
我们可以用它来修改AndroidManifest.xml
支持。
首先,您需要添加android名称空间属性。在您的3210中,将新属性xmlns:android="http://schemas.android.com/apk/res/android"
添加到<widget />
。你的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
,然后再次添加。
的com.phonegap.DroidGap,键盘是否可能覆盖输入框。从那里,用户将看不到他们正在输入的内容。 – darewreck 2016-10-18 00:36:59
@darewreck提供了一个很好的观点,因为我有这个确切的问题并且实施了这个解决方案,并且由于这个确切原因它不适用于我。对我来说,我想我将不得不找到一个解决方案,在这里我可以找出如何确定键盘是否显示,分配给变量并基于此来切换底部栏的可见性,因为字段行为更好原始设置。尽管答案是正确的,但darewreck的观点非常有效 – chairmanmow 2017-06-07 23:48:40