RecyclerView系列:下拉刷新上拉加载更多
Posted zhangjin1120
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RecyclerView系列:下拉刷新上拉加载更多相关的知识,希望对你有一定的参考价值。
效果图:
- 注意:List数据数量要超过RecyclerView的高度,才有上拉加载更多的效果。
- 导入RecyclerView包,参考:RecyclerView系列:开源框架BaseRecyclerViewAdapterHelper使用
- 导入依赖SmartRefreshLayout的androidX版:
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实现仿“简书”下拉刷新和上拉加载更多