在 RecyclerView 列表之后显示 ProgressBar

Posted

技术标签:

【中文标题】在 RecyclerView 列表之后显示 ProgressBar【英文标题】:Show ProgressBar after the RecyclerView list 【发布时间】:2021-06-29 00:45:16 【问题描述】:

我想在 RecyclerView 的列表结束后显示 ProgressBar。当前,当我向下滚动显示最后一项的 ProgressBar 并且当新帖子获取最后一项时消失了。 在谷歌上搜索但找不到答案,我是新开发者,请帮助

这是我的 xml:

 <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    app:layout_behavior="@string/appbar_scrolling_view_behavior">




    <androidx.recyclerview.widget.RecyclerView
        android:layout_
        android:layout_
        android:id="@+id/recycler_view">

    </androidx.recyclerview.widget.RecyclerView>



    <RelativeLayout
        android:layout_
        android:layout_>

    <ProgressBar
        android:layout_
        android:layout_
        android:id="@+id/progressbar"
        android:layout_below="@+id/recycler_view"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        tools:ignore="NotSibling" />

    </RelativeLayout>


</androidx.constraintlayout.widget.ConstraintLayout>

进度条:

 recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() 
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) 
            if (!recyclerView.canScrollVertically(1) && dy > 0)
             //check for scroll down
                visibleItemCount = mLayoutManager.getChildCount();
                totalItemCount = mLayoutManager.getItemCount();
                pastVisiblesItems = mLayoutManager.findFirstVisibleItemPosition();
                if ((visibleItemCount + pastVisiblesItems) >= totalItemCount) 
                    if (!loading)
                        progressBar.setVisibility(View.VISIBLE);
                        loading = true;
                        yourURL = baseURL + baseModel + "&page=" + pageNo++;
                        getRetrofit();

                    
                
            

【问题讨论】:

【参考方案1】:

要在 recycleView 中添加进度条,您必须使用 pagination3。 在 pagination3 中,他们提供了如何在网络慢时显示进度条,如果网络不存在,则会显示重试按钮,因此我建议您阅读有关 Pagination3 的文章,它将解决所有问题。

【讨论】:

以上是关于在 RecyclerView 列表之后显示 ProgressBar的主要内容,如果未能解决你的问题,请参考以下文章

RecyclerView 适配器 - 列表正在更新,但视图没有

使用 RecyclerView 显示联系人列表

Android:RecyclerView 不显示片段中的列表项

recyclerView不会显示我列表项的“真实”数据

使用 RecyclerView 在屏幕上显示我的列表的特定数量

如何能够将数据保存在列表中并在 recyclerview 中显示