RecyclerView系列:下拉刷新上拉加载更多

Posted zhangjin1120

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RecyclerView系列:下拉刷新上拉加载更多相关的知识,希望对你有一定的参考价值。

效果图:

    implementation  'com.scwang.smart:refresh-layout-kernel:2.0.3'      //核心必须依赖
    implementation  'com.scwang.smart:refresh-header-classics:2.0.3'    //经典刷新头
    implementation  'com.scwang.smart:refresh-header-radar:2.0.3'       //雷达刷新头
    implementation  'com.scwang.smart:refresh-header-falsify:2.0.3'     //虚拟刷新头
    implementation  'com.scwang.smart:refresh-header-material:2.0.3'    //谷歌刷新头
    implementation  'com.scwang.smart:refresh-header-two-level:2.0.3'   //二级刷新头
    implementation  'com.scwang.smart:refresh-footer-ball:2.0.3'        //球脉冲加载
    implementation  'com.scwang.smart:refresh-footer-classics:2.0.3'    //经典加载
  • 布局代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.scwang.smart.refresh.layout.SmartRefreshLayout
        android:id="@+id/srl"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#DEDEDE"
        >

        <com.scwang.smart.refresh.footer.ClassicsFooter
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/rv"
            android:layout_width="match_parent"
            android:layout_height="300dp">

        </androidx.recyclerview.widget.RecyclerView>

        <com.scwang.smart.refresh.header.ClassicsHeader
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </com.scwang.smart.refresh.layout.SmartRefreshLayout>

</RelativeLayout>
  • MainActivity.java 代码:
public class MainActivity extends AppCompatActivity {
    SmartRefreshLayout srl;
    RecyclerView rv;
    NameAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        srl = findViewById(R.id.srl);
        srl.setRefreshHeader(new ClassicsHeader(this));
        srl.setRefreshFooter(new ClassicsFooter(this));
        srl.setOnRefreshListener(new OnRefreshListener() {
            @Override
            public void onRefresh(RefreshLayout refreshlayout) {
                Log.e("xxx", "gg");
                refreshlayout.finishRefresh(2000/*,false*/);//传入false表示刷新失败
            }
        });
        srl.setOnLoadMoreListener(new OnLoadMoreListener() {
            @Override
            public void onLoadMore(RefreshLayout refreshlayout) {
                Log.e("xxx", "hhaa");
                refreshlayout.finishLoadMore(2000/*,false*/);//传入false表示加载失败
            }
        });


        rv = findViewById(R.id.rv);
        rv.setLayoutManager(new LinearLayoutManager(MainActivity.this));
        adapter = new NameAdapter(R.layout.item_name, getNameList());
        rv.setAdapter(adapter);

    }

    private List<String> getNameList() {
        ArrayList<String> nameList = new ArrayList<>();
        nameList.add("刘德华");
        nameList.add("张学友");
        nameList.add("黎明");
        nameList.add("郭富城");
        nameList.add("任达华");
        nameList.add("洪金宝");
        nameList.add("周星驰");
        nameList.add("成龙");
        nameList.add("李连杰");
        nameList.add("甄子丹");
        nameList.add("赵文卓");
        nameList.add("黄晓明");
        return nameList;
    }

}

以上是关于RecyclerView系列:下拉刷新上拉加载更多的主要内容,如果未能解决你的问题,请参考以下文章

Android实现RecyclerView的下拉刷新和上拉加载更多

使用SwipeRefreshLayout和RecyclerView实现仿“简书”下拉刷新和上拉加载更多

使用SwipeRefreshLayout和RecyclerView实现仿“简书”下拉刷新和上拉加载更多

使用SwipeRefreshLayout和RecyclerView实现仿“简书”下拉刷新和上拉加载更多

结合SwipeRefreshLayout可以上拉加载更多下拉刷新的RecyclerView

结合SwipeRefreshLayout可以上拉加载更多下拉刷新的RecyclerView