RecyclerView与SwipeRefreshLayout 刷新微件的组合使用(附demo源码)

什么是RecyclerView?

RecyclerView本身就是一个视图,与listView的使用方法大同小异,与listView相比更加灵活,能够动态的创建元素。Google现在推荐使用Recyclerview。listView,GirdView已都不被推荐使用了

如何使用RecyclerView?

添加相关依赖

implementation'androidx.recyclerview:recyclerview:1.1.0'

定义布局管理器

你可以使用RecyclerView库的三种布局管理器之一,LinerLayoutManager,GridLayoutManager,StaggeredGridLayoutManager

例如:

LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
recyclerView.setLayoutManager(linearLayoutManager);

定义Adapter,ViewHolder

定义Adapter,继承 RecyclerView.Adapter,一定要复写三个方法onCreateViewHolder(),onBindViewHolder(),getItemCount()。

定义ViewHolder需要继承 RecyclerView.ViewHolder

Adapter需要时会创建ViewHolder对象,创建时都会调用onCreateViewHolder()方法,

例如:

@NonNull
@Override
public CustomAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
   
    View view=View.inflate(context,R.layout.simple_item,null);//R.layout.simple_item为视图项的布局
    return new ViewHolder(view);
}

通过onBindViewHolder()将 ViewHolder 与数据相关联

例如:

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
   
    holder.tv.setText(dataname[position]);//tv为TextView,dataneme[position]为要绑定的数据
    holder.iv.setImageResource(dataimage[position]);//iv为ImageView,dataImage[position]为要绑定的数据
}

SwipeRefreshLayout 下拉刷新微件

SwipeRefreshLayout的作用

灵活的向现有应用添加滑动刷新微件,检测下拉的滑动,显示一个独特的进度条,在应用里触发回调方法以实现刷新效果

如何使用SwipeRefreshLayout

添加依赖
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
将SwipeRefreshLayout微件添加到包含视图 的现有布局文件中

例如:

<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swiperefresh"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/rv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
定义SwipeRefreshLayout.setOnRefreshListener监听刷新手势

例如:

swipeRefreshLayout.setOnRefreshListener( new SwipeRefreshLayout.OnRefreshListener() {
   
    @Override
    public void onRefresh() {
   
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值