RecyclerView 简单介绍
RecyclerView只负责回收和重用的工作,所有关于布局、绘制和其他相关的问题,也就是跟数据展示相关的所有问题,都被委派给了一些”插件化”的类来处理。
以下是RecyclerView中用于数据展示的一些重要的类,他们都是RecyclerView的内部类:
- Adapter:包装数据集合并且为每个条目创建视图。
- ViewHolder:保存用于显示每个数据条目的子View。
- LayoutManager:将每个条目的视图放置于适当的位置。
- ItemDecoration:在每个条目的视图的周围或上面绘制一些装饰视图。
- ItemAnimator:在条目被添加、移除或者重排序时添加动画效果。
RecyclerView是谷歌V7包下新增的控件,用来替代ListView的使用,在RecyclerView标准化了ViewHolder类似于ListView中convertView用来做视图缓存
布局管理:设置LayoutManager
使用场景:通过设置LayoutManager来快速实现listview、gridview、瀑布流的效果,而且还可以设置横向和纵向显示
详细使用:
// 前提:控件初始化
@BindView(R.id.make_small_recyclerView)
RecyclerView smallRecycleView;
// 设置布局管理
smallRecycleView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
// 这里是线性布局,方向水平,可以自定义布局实现复杂的展示~
// 设置adapter
smallAdapter = new ImageListShowAdapter(this,R.layout.list_iteam_imagelistshow,modelsArray);
smallRecycleView.setAdapter(smallAdapter);
// 更新数据
smallAdapter.notifyDataSetChanged();
// 删除
modelsArray.remove(position);
smallAdapter.notifyDataSetChanged();
// 添加
modelsArray.add(0,imagePath);
smallAdapter.notifyDataSetChanged();
进阶用法
// item 粘性
// item 添加/删除 动画
// 花式布局:圆形,方形,自定义形状
// 滚动到指定position,带自定义动画