Sencha Touch 2.1:表格面板键盘在Android上隐藏活动的文本字段

swa*_*ner 13 android sencha-touch-2

当我点击屏幕底部的文本字段时,会出现键盘并隐藏活动元素.在iOS上,它完美无缺.

我能够滚动表单,因此文本字段位于可见区域,但这并不好看.我做错了什么或这是一个已知的错误,因为我在Sencha Touch本身的示例中有相同的行为:docs.sencha.com/touch/2-1/touch-build/examples/forms/

如果在这个表格上:

在此输入图像描述

我点击"Bio"的文本字段,键盘隐藏了文本字段,而不是滚动文本字段以使其在输入时可见:

在此输入图像描述

Rob*_*Rob 11

这绝对是一个众所周知的问题,我在Android上看过很多次.您可以尝试做的唯一事情是在输入字段上侦听焦点事件,然后滚动到该元素.您可能需要使用Y最适合您情况的正确值.

{
    xtype: 'textareafield',
    name: 'bio',
    label: 'Bio',
    maxRows: 10,
    listeners: {
        focus: function(comp, e, eopts) {
            var ost = comp.element.dom.offsetTop;
            this.getParent().getParent().getScrollable().getScroller().scrollTo(0, ost);
        }
    }
},
Run Code Online (Sandbox Code Playgroud)

这适合我.如果您需要任何帮助实现这一点,请告诉我!

在此输入图像描述


小智 6

较少侵入性的解决方案:

在Application启动方法上添加以下行:

launch: function() {
    if (Ext.os.is.Android) { //maybe target more specific android versions.
        Ext.Viewport.on('painted', function() {
            Ext.Viewport.setHeight(window.innerHeight);
        });
    }
    // ... rest of the launch method here
}
Run Code Online (Sandbox Code Playgroud)

这在我测试的许多情况下都能正常工作.Cordova和Chrome实施.在Cordova/Phonegap应用程序的情况下,您只需要注意全屏设置为false.(在Cordova 3.5上测试过)