在文本字段之间进行选项卡时,Sencha触摸滚动问题

时间:2014-06-19 00:43:57

标签: javascript html5 extjs sencha-touch

我的Sencha Touch(2.3)应用中的面板上有很多文本字段。

当我使用Tab键向下浏览面板时,滚动位置会相应更新。

然而,在向下跳转页面后,当我尝试滚动面板(向上或向下)时,面板的行为就好像滚动位置仍然在顶部并且滚动变得不合适。这会导致滚动锁定或使面板内容脱离屏幕。

1 个答案:

答案 0 :(得分:0)

通过附加在控制字段获得焦点时调用scrollTo函数的侦听器来解决此问题。这将确保正确设置滚动位置,而Sencha Touch中的标签通常不是这种情况。

MyApp.utils.Global.attachScrollToOnFocus([
                    'firstTextField',
                    'secondTextField',
                    'thirdTextField'
                ], scroller, container);

实用方法:

attachScrollToOnFocus: function(inputs, scroller, container){
    var i, scroll = function(e){
        var pos = -(container.getY() - Ext.get(e.target.id).getY());
        if(pos > scroller.getMaxPosition().y) {
            scroller.scrollToEnd();
        }
        else {
            scroller.scrollTo(0, pos);
        }
    };
    for(i = 0; i < inputs.length; i++) {
        Ext.get(inputs[i]).on({
            focus: scroll
        });
    }
}