什么是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() {