文章目录
Android 事件分发 系列文章目录
一、ItemTouchHandler 简介
二、ItemTouchHelper.Callback 自定义实现
1、设置移动标志 ( 拖动/滑动 )
三、完整代码实现
1、主界面
2、ItemTouchHelper.Callback 回调类
一、ItemTouchHandler 简介
ItemTouchHandler 是 Google 提供的一个工具类 , 主要针对 RecyclerView 的上下左右拖动事件 进行处理 ;
如 : 侧滑删除 功能 , 条目位置拖动交换 功能 , 就可以使用 ItemTouchHandler 实现 ;
如果 RecyclerView 没有添加 ItemTouchHandler , 只能上下滚动 , 左右拉动 , 没有效果 , 也无法进行拖动交换条目操作 ;
调用 ItemTouchHandler 的 attachToRecyclerView 方法 , 传入想要添加上下左右拖动事件的 RecyclerView 对象 , 即可为该 RecyclerView 添加拖动事件 ;
添加后 , 该 RecyclerView 自动可以进行上下左右拖动操作 , 用户可以自行添加相关的回调 ItemTouchHelper.Callback , 响应这些事件 ;
初始化 RecyclerView 并设置 ItemTouchHelper 示例 :
//1 . 从布局中获取 RecyclerView recycler_view = findViewById(R.id.recycler_view); //2 . 创建并设置布局管理器 //创建布局管理器 layoutManager = new LinearLayoutManager( this, RecyclerView.VERTICAL, false); //设置布局管理器 recycler_view.setLayoutManager(layoutManager); // 设置边距 recycler_view.addItemDecoration(new ItemDecoration()); //3 . 创建并设置列表适配器 adapter = new Adapter(); recycler_view.setAdapter(adapter); //4. 添加拖动事件 Callback callback = new Callback(); mItemTouchHelper = new ItemTouchHelper(callback); mItemTouchHelper.attachToRecyclerView(recycler_view);
效果展示 : 此时还没有加入上下左右 拖动/滑动 操作 ;