【问题标题】:How to Initialize pagination variable如何初始化分页变量
【发布时间】:2021-02-24 02:27:57
【问题描述】:

我正在使用一个整数变量。

int page=1;

private void pagination() {
        recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
                /*if (newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
                    isScrolling = true;
                }*/
            }

            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                currentItems = manager.getChildCount();
                totalItems = manager.getItemCount();
                scrollOutItems = manager.findFirstVisibleItemPosition();
                if (isScrolling) {
                    if (totalItems > previousTotal) {
                        previousTotal = totalItems;
                        page++;
                        isScrolling = false;
                    }
                }
                if (!isScrolling && (currentItems + scrollOutItems == totalItems)) {
                    progressBar.setVisibility(View.VISIBLE);
                    //page=page+1;
                    /*new Handler().postDelayed(new Runnable() {
                        @Override
                        public void run() {
                        }
                    }, 5000);*/
                    getNext();
                    progressBar.setVisibility(View.GONE);
                    isScrolling = true;
                    Log.v("All Courses", "Page Number: " + page);
                }
            }
        });
    }

我想显示所有课程,但使用 8 门课程显示,滚动时显示下一个 8 门课程。然后我单击任何课程然后转到新片段,但我在下一个片段中按返回按钮返回课程片段然后页面变量不初始化 1 值。页面变量存储下一个增量值。

【问题讨论】:

    标签: android scroll pagination progress-bar


    【解决方案1】:

    您可以使用以下代码进行分页,效果很好。将您的首页数据添加到您的Recycler然后设置以下addOnScrollListener

    private Integer currentPage = 1;
    yourRecycler.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override 
            void onScrollStateChanged(RecyclerView recyclerView, Integer newState) {
                super.onScrollStateChanged(recyclerView, newState)
                if (!recyclerView.canScrollVertically(1)) {
                    currentPage++;
                    getNextPage();
                    
                }
            }
        })
    

    您需要在以下函数中添加新的页面添加操作:

    private void getCurrentPage(){
        //add new page data to yourRecycler
    }
    

    注意:这是 kotlin 代码,我转换为 java。它可以缺少分号等。

    【讨论】:

    • 我对这段代码很满意,但我希望当我点击回收站视图项然后转到新片段然后我按移动返回按钮转到上一个片段,currentPage 变量再次初始化为 1 但它存储下一个增量值。
    猜你喜欢
    • 2019-05-17
    • 1970-01-01
    • 2019-12-07
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2017-03-29
    • 1970-01-01
    相关资源
    最近更新 更多