底部带有加载更多进度条的RecyclerView

3

我尝试使用addOnScrollListener(),但这个东西每次都会从头开始获取数据并加载recycler视图。我想在当前位置之后加载数据。这是我的示例代码。

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_load, null);

        progressBar = (ProgressBar) view.findViewById(R.id.progressBar);
        progressBar.setVisibility(View.VISIBLE);

        myClickHandler();

        business_rv = (RecyclerView) view.findViewById(R.id.business_rv);
        business = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL,false);
        business_rv.setHasFixedSize(true);
        business_rv.setLayoutManager(business);
        if (business_rv.getLayoutManager() instanceof LinearLayoutManager) {
            business = (LinearLayoutManager) business_rv.getLayoutManager();
            business_rv.addOnScrollListener(new RecyclerView.OnScrollListener() {
                @Override
                public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                    super.onScrolled(recyclerView, dx, dy);
                    UpdateRecyclerView(url);
                }
            });
        }

        return view;
    }
2个回答

3
您需要的是无限循环视图,可以在滚动时加载数据。我在此附上该实现的链接。 请点击此链接

-2

使用此作为

 _recycler.addOnScrollListener(_recyclerViewOnScrollListener);   

 private RecyclerView.OnScrollListener recyclerViewOnScrollListener = new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
            }

            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                int visibleItemCount = layoutManager.getChildCount();
                int totalItemCount = layoutManager.getItemCount();
                int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();

                if (!isLoading && !isLastPage) {
                    if ((visibleItemCount + firstVisibleItemPosition) >= totalItemCount
                            && firstVisibleItemPosition >= 0
                            && totalItemCount >= PAGE_SIZE) {
                        loadMoreItems(++currentPage);
                    }
                }
            }
    };

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接