PhoneGap中的软键盘包含输入元素

时间:2012-08-15 11:23:19

标签: cordova keyboard hidden

我已经看过几次这个问题了,但这些答案似乎都不适合我。我怀疑我做了一些令人难以置信的愚蠢的事情,并且错过了明显的(对等编程+1)。

使用PhoneGap(Cordova)2.0.0开发Android(SDK版本8+)。我有一个用户设置输入的完整页面表单,在页面上运行等间距元素,最底部有取消和提交按钮。当用户触摸上部元素时,软键盘会弹出,并且没有问题。但是,如果用户触摸了软键盘下方的元素(如果显示),则弹出键盘时会被键盘覆盖。

我尝试了清单文件中的各种咒语和化身:windowSoftInputMode =“adjustPan”(基于http://solutions.michaelbrooks.ca/2011/07/05/android-soft-keyboard-resizes-web-view/http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft),但无济于事,键盘将隐藏元素

我的清单文件的相关部分看起来像这样

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".title"
        android:label="@string/title" android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
        android:windowSoftInputMode="adjustPan"
    </activity>
</application>

和index.html的视口部分(我看过一些关于更改的帖子)

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">

任何指针都会非常感激

欢呼声

3 个答案:

答案 0 :(得分:4)

而不是

android:windowSoftInputMode="adjustPan" 

android:windowSoftInputMode="adjustResize"

答案 1 :(得分:0)

android:windowSoftInputMode="adjustResize"

它在我的手机上工作正常(4.1)

答案 2 :(得分:0)

对于我来说,这也是一个很大的问题,在Android 2.x和早期的4.x.

如果我错了,请纠正我,但我认为android:windowSoftInputMode用于本机开发,并在活动开始时应用。更改该设置似乎不会影响我的PhoneGap / Cordova项目。

当编辑字段获得焦点时,我会明确地将窗口滚动到位置:

onFocusEditField = function(comp, e, eopts) {
    if(Ext.os.is.Android) {
        var ost = comp.element.dom.offsetTop;
        this.getParent().getParent().getScrollable().getScroller().scrollTo(0, ost-50);
    }
};

注意:使用Sencha Touch 2.x。