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" /> 
+2

的com.phonegap.DroidGap,键盘是否可能覆盖输入框。从那里,用户将看不到他们正在输入的内容。 – darewreck 2016-10-18 00:36:59

+0

@darewreck提供了一个很好的观点,因为我有这个确切的问题并且实施了这个解决方案,并且由于这个确切原因它不适用于我。对我来说,我想我将不得不找到一个解决方案,在这里我可以找出如何确定键盘是否显示,分配给变量并基于此来切换底部栏的可见性,因为字段行为更好原始设置。尽管答案是正确的,但darewreck的观点非常有效 – chairmanmow 2017-06-07 23:48:40

添加

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

你的头标签

+9

这不起作用。 – AlexCheuk 2012-04-09 21:29:28

+0

您是否在AndroidManifest.xml中添加了第二个活动标签? intent-filter > 通过走这条路线,将软件包名称更改为Phonegap 1.4.x和更低版本 – allesmi 2012-04-10 10:04:51

顶部上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,然后再次添加。