Android 控件 RecyclerView简单使用
1.导依赖库
implementation 'com.android.support:recyclerview-v7:27.1.1'
implementation 'com.github.bumptech.glide:glide:4.8.0'//图片
2.布局
<android.support.v7.widget.RecyclerView
android:id="@+id/recycle_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
3.在MainActivity找到控件
RecyclerView recyclerView = findViewById(R.id.recycle_view);
// LinearLayoutManager layoutManager = new LinearLayoutManager(this );
//设置布局管理器
// GridLayoutManager gridLayoutManager = new GridLayoutManager(this,3);
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(staggeredGridLayoutManager);
//设置为垂直布局,这也是默认的
// layoutManager.setOrientation(OrientationHelper. VERTICAL);
//设置Adapter
NormalAdapter recycleAdapter = new NormalAdapter(list);
recyclerView.setAdapter(recycleAdapter);
//设置分隔线
//recyclerView.addItemDecoration( new DividerGridItemDecoration(this ));
//设置增加或删除条目的动画
recyclerView.setItemAnimator( new DefaultItemAnimator());
4.适配器
创建一个继承RecyclerView.Adapter<VH>的Adapter类
package mvp.com.example.recyclerview_demo.adapter;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import java.util.List;
import mvp.com.example.app.MyApp;
import mvp.com.example.bean.User;
import mvp.com.example.recyclerview_demo.R;
// ① 创建Adapter
public class NormalAdapter extends RecyclerView.Adapter<NormalAdapter.VH>{
//② 创建ViewHolder
public static class VH extends RecyclerView.ViewHolder{
public final TextView title;
public final ImageView imageView;
public VH(View v) {
super(v);
title = (TextView) v.findViewById(R.id.text_title);
imageView = (ImageView) v.findViewById(R.id.image_view);
}
}
private List<User> mDatas;
public NormalAdapter(List<User> data) {
this.mDatas = data;
}
//③ 在Adapter中实现3个方法
@Override
public void onBindViewHolder(VH holder, int position) {
holder.title.setText(mDatas.get(position).getTitle());
Glide.with(MyApp.getContext()).load(mDatas.get(position).getUrl()).into(holder.imageView);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//item 点击事件
}
});
}
@Override
public int getItemCount() {
return mDatas.size();
}
@Override
public VH onCreateViewHolder(ViewGroup parent, int viewType) {
//LayoutInflater.from指定写法
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.itme_layout, parent, false);
return new VH(v);
}
}
---------------------
作者:紫焰--星
来源:CSDN
原文:https://blog.csdn.net/qq_42663566/article/details/84945130
版权声明:本文为博主原创文章,转载请附上博文链接!