setOnScrollListener无限循环并加载而不在GridView中滚动?

时间:2015-10-15 09:11:36

标签: java android gridview

当在没有用户滚动的循环中连续加载新数据时,我在gridview中实现setOnScrollListener时遇到问题。我想等待用户滚动到结尾,然后再加载新数据。怎么做到这一点?这是在不滚动的情况下给我无限循环的代码:

  gv.setOnScrollListener(new EndlessScrollListener() {
        @Override
        public boolean onLoadMore(int page, int totalItemsCount) {

            load_more_data();

            // Triggered only when new data needs to be appended to the list
            // Add whatever code is needed to append new items to your AdapterView
            //      customLoadMoreDataFromApi(page);
            // or customLoadMoreDataFromApi(totalItemsCount);
            return true; // ONLY if more data is actually being loaded; false otherwise.
        }
    });

2 个答案:

答案 0 :(得分:0)

OnScrollListeneronScroll为您提供firstVisibleItem附近的信息,第一个可见单元格的索引,visibleItemCount,可见单元格的数量和{{ 1}}列表适配器中的项目数。如果您使用以下方法实现它

totalItemCount

当达到阈值 @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if ((firstVisibleItem + visibleItemCount) >= totalItemCount - 10) { load_more_data(); } } 时,你的app会开始加载下一个项目。

答案 1 :(得分:0)

请试一试。

 gridView.setOnScrollListener(new AbsListView.OnScrollListener() {

        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {
            // TODO Auto-generated method stub

            if((firstVisibleItem + visibleItemCount) >= totalItemCount - 5)
            {
                load_more_data();
            }

        }
    });