在Sencha Touch中按需加载NestedList

时间:2011-01-29 02:14:36

标签: javascript sencha-touch extjs

我正在使用Sencha Touch构建类似电子邮件的应用程序,我使用NestedList小部件作为导航面板。

  • 的收件箱
    • MAIL1
    • mail2
    • mail3
  • 发件箱

收件箱中可能有很多邮件,所以我想按需加载,当用户滚动到列表末尾时,它会自动加载下10个项目并将新项目附加到列表中。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以尝试以下内容:

var loadingItems = false;

var fetchItems = function () {
    //fetch new items to add
    loadingItems = false;
};

//nestedList: reference to the nestedList
//x: new x position
//y: new y position
var scrollListener = function(nestedList, x, y) {
    //set some boundary for where we should start loading data
    var screenBottom = nestedList.getHeight() - OFFSET; 

    //if we're within some region near the bottom of the list...
    if((y >= screenBottom) && !loadingItems) {
        loadingItems = true;
        fetchItems();
    }
};
nestedList.addListener("move", scrollListener);

答案 1 :(得分:0)

由于Sencha Touch与ExtJS分享了很多代码,您可以通过查看ExtJS中的各种liveGrid实现来了解如何实现这一点,因为这基本上就是您正在创建的内容。

这是我用过的最稳定,最全面的livegrid: http://www.ext-livegrid.com/