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

Ale*_*euk 13 keyboard android cordova

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

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

Eu *_*Vid 26

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

android:windowSoftInputMode="adjustPan"
Run Code Online (Sandbox Code Playgroud)

android:configChanges="orientation|keyboardHidden"
Run Code Online (Sandbox Code Playgroud)

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" />
Run Code Online (Sandbox Code Playgroud)

  • 通过这条路线,键盘是否可以掩盖输入框.从那里,用户将看不到他们正在键入的内容. (3认同)

bru*_*ors 5

最重要的是Eu Vid 的回答,我想指出 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">
Run Code Online (Sandbox Code Playgroud)

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

<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application/activity">
    <activity android:configChanges="orientation|keyboardHidden" android:windowSoftInputMode="adjustPan" />
</edit-config>
Run Code Online (Sandbox Code Playgroud)

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

笔记:

  • 上面的代码不会覆盖<activity>块而是与它合并;它只会替换指定的 xml 属性。
  • 如果您之前已经调用cordova platform add android过,您可以通过cordova platform rm android先输入然后再次添加来删除它。