无尽的滚动列表器android重置活动

时间:2016-05-19 08:11:58

标签: android

我使用EndlessRecyclerOnScrollListener实现了分页。在特定情况下,我必须重置页码,因此我创建了resetValues()方法。但我不知道如何从活动类中调用此方法。

public abstract class EndlessRecyclerOnScrollListener extends RecyclerView.OnScrollListener {
        public static String TAG = EndlessRecyclerOnScrollListener.class.getSimpleName();

        private int previousTotal = 0; // The total number of items in the dataset after the last load
        private boolean loading = true; // True if we are still waiting for the last set of data to load.
        private int visibleThreshold = 0; // The minimum amount of items to have below your current scroll position before loading more.
        int firstVisibleItem, visibleItemCount, totalItemCount;

        private int current_page = 1;

        private LinearLayoutManager mLinearLayoutManager;

        public EndlessRecyclerOnScrollListener(LinearLayoutManager linearLayoutManager,boolean isfromversion) {
            this.mLinearLayoutManager = linearLayoutManager;
            Log.e("isversionendless",isfromversion+"");
            if(isfromversion)
            {
                resetValues();
            }


        }

        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);

            visibleItemCount = recyclerView.getChildCount();
            totalItemCount = mLinearLayoutManager.getItemCount();
            firstVisibleItem = mLinearLayoutManager.findFirstVisibleItemPosition();

            if (loading) {
                if (totalItemCount > previousTotal) {
                    loading = false;
                    previousTotal = totalItemCount;
                }
            }
            if (!loading && (totalItemCount - visibleItemCount)
                    <= (firstVisibleItem + visibleThreshold)) {
                // End has been reached

                // Do something
                current_page++;

                onLoadMore(current_page);

                loading = true;
            }
        }

        public void resetValues(){
            previousTotal = 0;
            loading = true;
            visibleThreshold = 1;
            firstVisibleItem = 0;
            visibleItemCount = 0;
            totalItemCount = 0;
        }


        public abstract void onLoadMore(int current_page);
    }

1 个答案:

答案 0 :(得分:0)

EndlessRecyclerOnScrollListener scrollListener=new EndlessRecyclerOnScrollListener(
            mGridLayoutManager) {
        @Override
        public void onLoadMore(int current_page) {
            // do somthing...
                loadMoreData(current_page);
        }

    };

    recyclerView.setOnScrollListener(scrollListener);

当您想要重置值时,只需调用方法如下。

scrollListener.resetValues();