RecyclerView
导入gradle 依赖
implementation 'com.android.support:recyclerview-v7:28.0.0'
编写适配器
继承
RecyclerView.Adapter<加泛型(ViewHoder类)>
重写方法
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
// i 代表类型,再多布局时进行分类
View view = LayoutInflater.from(context).inflate(R.layout.item, null);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, final int i) {
// i 代表下标
viewHolder.tv.setText(dataBeans.get(i).getText());
Glide.with(context).load(dataBeans.get(i).getImage1()).into(viewHolder.iv);
}
@Override
public int getItemCount() {
//TODO: 集合长度
return dataBeans.size();
}
编写Holder方法
继承 RecyclerView.ViewHolder
class ViewHolder extends RecyclerView.ViewHolder{
private TextView tv;
private ImageView iv;
public ViewHolder(@NonNull View itemView) {
super(itemView);
tv = itemView.findViewById(R.id.tv);
iv = itemView.findViewById(R.id.iv);
}
}
在Activity中实现
必须写
// 瀑布式
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL));
// List式
recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
// Glid式 1.上下文 2.几列
recyclerView.setLayoutManager(new GridLayoutManager(MainActivity.this,3));