首先引入RecylerView的依赖
implementation 'com.android.support:recyclerview-v7:28.0.0'
在布局里引入RecylerView 这里注意必须是v7包下的
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recylerView"/>
在Activity中找到控件
recyer = (XRecyclerView) findViewById(R.id.recyler);
设置管理器
1.线性样式
//设置布局管理器LinearLayoutManager是线性
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
// seto LinearLayoutManager 里的参数VERTICAL设置垂直滑动 HORIZONTAL是水平
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
//吧实行赋给recyer控件
recyer.setLayoutManager(linearLayoutManager);
2.网格样式
//设置网格管理器
//传一个上下文 一个列数
GridLayoutManager gridLayoutManager = new GridLayoutManager(this,3);
recyer.setLayoutManager(gridLayoutManager);
3.瀑布流样式
// 瀑布流 管理器 数据长度不一样长就可以错开
//传 一个列数 一个方向
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
recyer.setLayoutManager(staggeredGridLayoutManager);
设置好管理器之后 定义适配器
public class MyAdapter1 extends RecyclerView.Adapter<MyAdapter1.MyViewHorder1> {
private Context context;
private List<String> list;
private OnItemClickLintener linter;
public MyAdapter1(Context context, List<String> list) {
this.context = context;
this.list = list;
}
@NonNull
@Override
public MyViewHorder1 onCreateViewHolder(@NonNull ViewGroup viewGroup, final int i) {
//引入布局
View view = View.inflate(context, R.layout.layout_item2, null);
MyViewHorder1 myViewHorder1 = new MyViewHorder1(view);
myViewHorder1.te2 = view.findViewById(R.id.te2);
myViewHorder1.img2 = view.findViewById(R.id.img2);
myViewHorder1.lin = view.findViewById(R.id.item2);
return myViewHorder1;
}
//给控件赋值
@Override
public void onBindViewHolder(@NonNull MyViewHorder1 myViewHorder1, final int i) {
myViewHorder1.te2.setText(list.get(i));
myViewHorder1.img2.setImageResource(R.drawable.hh1);
//设置整个自定义条目的点击事件
myViewHorder1.lin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//调用接口 去下面定义一个
linter.onItem(i);
}
});
}
@Override
public int getItemCount() {
return list.size();
}
//viewhorder
public class MyViewHorder1 extends RecyclerView.ViewHolder {
public MyViewHorder1(@NonNull View itemView) {
super(itemView);
}
//找到控件
public TextView te2;
public ImageView img2;
public LinearLayout lin;
}
**//传递接口**
public void setOnItemClickLinter(OnItemClickLintener linter) {
this.linter = linter;
}
**//自定义点击事件的 接口**
public interface OnItemClickLintener {
void onItem(int po);
}
}
**设置适配器 **
//实例化适配器
myAdapter1 = new MyAdapter1(ShowActivity.this, list1);
//设置适配器
recylerview2.setAdapter(myAdapter1);
这是点击事件的回调
//设置条目点击事件\
myAdapter1.setOnItemClickLinter(new MyAdapter1.OnItemClickLintener() {
@Override
public void onItem(int po) {
Toast.makeText(ShowActivity.this, "您点击了第" + po + "条", Toast.LENGTH_SHORT).show();
//点击删除
removeData(po);
}
});