RecyclerView
简介
- 可以说是一个增强版的ListView
- RecyclerView被定义在了support库中,因此使用时,需要在项目的build.gradle中添加相应的依赖库
- RecyclerView并不是内置在系统SDK中的,所以需要在xml里把完整的包路径写出来
实例(上下滑动显示实现)
- 新建一个FruitAdapter类,让该适配器继承RecyclerView.Adapter,并将泛型指定为FruitAdapter.ViewHolder,其中,ViewHolder为我们定义在该适配器中的一个内部类
- ViewHolder要继承自RecyclerView.ViewHolder,其构造函数中要传入一个View参数,该参数通常是RecyclerView子项最外层布局,因此我们可以通过findViewById获取布局中的控件
- 由于FruitAdapter继承自RecyclerView.Adapter,因此需重写onCreateViewHolder()/onBindViewHolder()/getItemCount()这三个方法
onCreateViewHolder():用于创建ViewHolder实例
onBindViewHolder():用于对RecyclerView子项数据进行赋值
getItemCount():用于告诉RecyclerView()一共有多少个子项
public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> {
private List<Fruit> mFruitList;
static class ViewHolder extends RecyclerView.ViewHolder {
ImageView mImageView;
TextView mTextView;
public ViewHolder(View view) {
super(view);
mImageView = view.findViewById(R.id.image_fruit);
mTextView = view.findViewById(R.id.text_fruit_name);
}
}
public FruitAdapter(List<Fruit> fruitList) {
mFruitList = fruitList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fruit_item,parent,false);
ViewHolder holder = new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@N


342

被折叠的 条评论
为什么被折叠?



