RecyclerView

旧巷老猫 提交于 2021-02-17 16:36:48

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”的点击和长按事件了

 

 

 

新手上路 不喜勿喷 欢迎指导错误 如有雷同 纯属巧合

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!