我如何使用Android listAdapter识别滚动方向



我有一个andoird listView和listAdapter。

我想每次从服务器中获取20个项目。

您如何建议我进行有效的分页?

每当GetView返回位置10倍的项目时,我一直想到一个新的10个项目的新块。

如果用户向上滚动,我将在开始时获取10个新项目,如果用户向下滚动,则将到达10个新项目。

i虽然要使用布尔标志(isPassedNinthItem)检测滚动方向,以了解9倍是否在当前10倍项目之前(否则是第11次项目)

任何简单的方法?

检查一些无尽的卷轴 listViews的源,基本上您要做的就是实现 onScrollListener并加载下一个'page'(用逻辑替换,例如,如果满足所有条件:

public class EndlessScrollListener implements OnScrollListener {
    private int visibleThreshold = 5;
    private int currentPage = 0;
    private int previousTotal = 0;
    private boolean loading = true;
    public EndlessScrollListener() {
    }
    public EndlessScrollListener(int visibleThreshold) {
        this.visibleThreshold = visibleThreshold;
    }
    @Override
    public void onScroll(AbsListView view, int firstVisibleItem,
            int visibleItemCount, int totalItemCount) {
        if (loading) {
            if (totalItemCount > previousTotal) {
                loading = false;
                previousTotal = totalItemCount;
                currentPage++;
            }
        }
        if (!loading &amp;&amp; (totalItemCount - visibleItemCount) <= (firstVisibleItem + visibleThreshold)) {
            // I load the next page of gigs using a background task,
            // but you can call any function here.
            new LoadGigsTask().execute(currentPage + 1);
            loading = true;
        }
    }
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
    }
}

最新更新