3

我已经看过这个问题几次了,但似乎没有一个答案对我有用。我怀疑我做了一些非常愚蠢的事情,并且错过了显而易见的事情(对等编程+1?)

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

我在清单文件中尝试了 android: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">

任何指针将不胜感激

干杯

4

3 回答 3

4

代替

android:windowSoftInputMode="adjustPan" 

尝试

android:windowSoftInputMode="adjustResize"
于 2012-08-16T14:23:14.727 回答
0
android:windowSoftInputMode="adjustResize"

它在我的手机上运行良好(4.1)

于 2012-08-22T04:59:56.183 回答
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。

于 2014-02-21T01:11:53.173 回答