如何滚动到容器的底部

时间:2014-04-24 18:22:27

标签: sencha-touch-2.3

我有一个容器,我想在事件的触发器上滚动到它的底部。我在Google上尝试了一切,但似乎没有任何效果......这些是我迄今为止尝试过的事情,所以你不要浪费任何时间:

1

Ext.get('detailsViewId').scrollTo("top", -Ext.get('detailsViewId').getHeight());

2

var mainContainer=this.getDetailContainer();
//I get the container here, so no error in the above line
mainContainer.scrollTo..................
mainContainer.element.scrollTo..................

以及来自"开发人员工具"的Chrome。

所以没有任何工作,所以我希望我能从Stackoverflow用户那里获得一些东西。

提前致谢。

2 个答案:

答案 0 :(得分:0)

Sencha Touches使用非本机ScrollableView使容器可滚动。 您可以通过在可滚动容器上调用getScrollable()方法来获取ScrollableView。此ScrollableView使用Ext.scroll.Scroller来应用滚动逻辑。

    var scrollableView,
        scroller,
        containerList

    containerList = Ext.Viewport.add({
        scrollable: true,

        // creating a few items to make the container overflow.
        defaults: {
            style: 'background-color: hsl(180, 45%, 85%);',
            padding: 30,
            margin: 20
        },

        items: function(){ 
            var ar = [];

            for(var i = 0; i < 30; i++) {
                ar.push({ html: 'item ' + i});
            }

            return ar;
        }()
    });
    scrollableView = containerList.getScrollable();

    scroller = scrollableView.getScroller();

    scroller.scrollBy(0,99999);

示例在此处可运行:https://fiddle.sencha.com/#fiddle/5pm

注意:滚动条有一个名为scrollToEnd的方法,但不知怎的,这并没有按预期工作,这就是为什么我使用99999作为scrollBy y参数。

答案 1 :(得分:0)

以下是它对我有用的方法:

var mainContainer=this.getDetailContainer();    
var scroller = mainContainer.getScrollable().getScroller();
scroller.scrollToEnd(true);