RecyclerView :
1、升级版的ListView、GridView、瀑布流 支持横向纵向滑动
2、RecyclerView 的使用需要LayoutManager 进行布局管理
1>、LinearLayoutManager 线性布局管理器 -->可以横向或纵向的ListView展示效果
2>、GridLayoutManager 网格布局管理器 -->可以横向或纵向的GridView展示效果
3>、StaggeredDridLayoutManager 瀑布流管理器
3、具体的步骤
1>、将RecyclerView添加到布局中 在代码当中找到该组件
2>、实列化布局管理器 (以线性布局为例)
LinearLayoutManager manager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); recyclerview.setLayoutManager(manager);//添加布局管理器
3>、找数据源(RecyclerView和ListView的用法步骤相差无几)
4>、给RecyclerView设置适配器(自定义适配器)
5>、RecyclerView的适配器是自定义一个类继承RecyclerView.Adapter
a、实现该类需要指定泛型类型 一般该类型为自己定义的一个类继承RecyclerView.ViewHolder
并且实现它的构造方法
b、然后实现它的方法 分别是
onCreateViewHilder(); //创建ViewHolder的时候调用
onBindViewHilder();//绑定数据时调用(所有的数据都在该方法中加载)
getItemCount();//集合中要展示的数据的数量
d、将适配器实列化后添加到RecyclerView的setAdapter()中
6>、RecyclerView自身是没有点击事件的,所以直接在适配器中定义一个接口
public interface OnItemClickListener{ public void onItemClickListener(int postion);//点击事件 public void onItemLongClickListener(int postion);//长按点击事件 }
而自定义Viewolder的构造方法中的ItemView有两个方法setOnClickListener();、setOnLongClicklistener()
所以在这两个方法中调用上边自定义的接口中的方法
itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //获取itemView的位置 int childPostion = recyclerView.getChildAdapterPosition(itemView); //监听的方法 listener.onItemClickListener(childPostion); } }); itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { int childAdapterPosition = recyclerView.getChildAdapterPosition(itemView); listener.onItemLongClickListener(childAdapterPosition); return true; } });
这样就可以使用“RecyclerView”的点击和长按事件了
新手上路 不喜勿喷 欢迎指导错误 如有雷同 纯属巧合
来源:oschina
链接:https://my.oschina.net/u/2375916/blog/760902