Android - 键盘压缩我的视图

时间:2014-09-19 12:38:30

标签: android jquery cordova keyboard viewport

我正在开发Android / iOS应用程序。当键盘打开登录(用户名和密码)时,所有内容都会缩小,看起来像这样:

enter image description here

正常情况下,它不应该被压缩。它应该向上移动,并让我清楚地看到我正在打字的内容。

enter image description here

是的,所以我不知道该怎么做。我尝试使用整个应用程序中的百分比(宽度/高度) - 也许这就是为什么我的View不会向上移动而是缩小的原因?

我在堆栈处环顾四周,发现了一些建议:

<activity
   ...
   android:windowSoftInputMode="adjustPan"> 
</activity>
而不是{p>或adjustResize,但这对我没什么用。在iOS上一切正常。我希望视图做的是他只是向上移动一点,没有任何调整大小。

我希望你能帮助我,如果你需要更多信息,请告诉我,我会更新或评论我的问题。

  • Cordova 3.5
  • 的jQuery / jQuery的移动
  • 插件:摄像头/控制台/设备/对话框/文件传输/文件/ inappbrowser / Splashscreen /状态栏/振动/地理位置/网络信息
  • Eclipse with Genymotion模拟器
  • 设备:Galaxy Note 10.1,4.4.2; Xperia Z2 4.4.2

这就是我的Androidmanifest的样子:

<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="1.0" package="de.*****************.de" xmlns:android="http://schemas.android.com/apk/res/android">
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
    <uses-permission android:name="android.permission.INTERNET" />
    <application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:screenOrientation="portrait" android:label="@string/activity_name" android:launchMode="singleTop" android:name="********" android:theme="@android:style/Theme.Black.NoTitleBar" android:windowSoftInputMode="adjustPan">
            <intent-filter android:label="@string/launcher_name">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="20" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.VIBRATE" />
</manifest>

2 个答案:

答案 0 :(得分:3)

几天前我遇到了同样的问题。

正如你所说,你已经给出了高度和宽度的百分比。

当Android键盘出现时,窗口会调整大小,其高度是不包括键盘大小的屏幕尺寸。

在页面主容器中给出高度百分比(即身体标签)会在键盘出现时缩小页面高度,

document.ready上为我设置一次身体标记的最小高度。

$(function(){

$("body").css("min-height",$(window).height())

});

答案 1 :(得分:2)

将此添加到您的清单中。我希望它能运作。有关详细信息,请单击HERE

<强> android:windowSoftInputMode="stateUnchanged|adjustResize"