Android 在RecyclerView中实现拖拽和滑动删除的效果
来源:互联网 发布:软件测试并发测试 编辑:程序博客网 时间:2024/05/13 13:37
参考
1、http://stackoverflow.com/questions/27293960/swipe-to-dismiss-for-recyclerview/30601554#30601554
2、https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback.html
3、https://medium.com/@ipaulpro/drag-and-swipe-with-recyclerview-b9456d2b1aaf
效果如下:
1、更新Android Support Library
compile 'com.android.support:recyclerview-v7:22.2.+'
2、new一个SimpleCallback出来
ItemTouchHelper.SimpleCallback callback = new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.LEFT) { @Override public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder source, RecyclerView.ViewHolder target) { final int fromPos = source.getAdapterPosition(); final int toPos = target.getAdapterPosition(); mAdapter.mOnMove(fromPos, toPos); return true; } @Override public void onSwiped(RecyclerView.ViewHolder viewHolder, int i) { mAdapter.mOnSwiped(viewHolder); } };
他有两个参数,第一个为drag操作的方向,第二个为swipe操作的方向。
在onMove方法中具体写移动拖拽item的操作,onSwiped中写滑动的操作。
// drag的具体操作 public void mOnMove(int fromPos,int toPos) { String prev = mList.remove(fromPos); mList.add(toPos > fromPos ? toPos - 1 : toPos, prev); notifyItemMoved(fromPos, toPos); }
// swipe的具体操作 public void mOnSwiped(RecyclerView.ViewHolder viewHolder) { mList.remove(viewHolder.getAdapterPosition()); notifyItemRemoved(viewHolder.getAdapterPosition()); }
3、new一个ItemTouchHelper
ItemTouchHelper mItemTouchHelper = new ItemTouchHelper(callback);
4、把ItemTouchHelper和RecyclerView关联
mItemTouchHelper.attachToRecyclerView(mRecyclerView);
源码如下
https://github.com/mmga/ItemTouchHelperDemo-SimpleCallback
0 0
- Android 在RecyclerView中实现拖拽和滑动删除的效果
- RecyclerView的拖拽 滑动删除效果
- 使用RecyclerView实现ListView,GridView的效果(上下,左右滑动),拖拽与滑动删除
- RecyclerView拖拽排序和滑动删除实现
- RecyclerView实现滑动删除和拖拽功能
- RecyclerView学习--item实现拖拽和滑动删除
- RecyclerView 实现滑动删除和拖拽功能
- 如何在RecyclerView上面实现"拖放"和"滑动删除"-2
- 如何在RecyclerView上面实现“拖放”和“滑动删除”-1
- RecyclerView实现滑动和删除事件的监听方法
- Android 滑动删除效果实现
- android实现滑动删除效果
- RecyclerView完美实现拖拽,滑动删除,撤销删除
- RecyclerView 简单实现拖拽和滑动
- 仿探探的卡片滑动效果-recyclerView实现
- recyclerView实现左右滑动的效果
- RecyclerView 滑动删除与拖动的实现
- 使用ItemTouchHelper轻松实现RecyclerView拖拽排序和滑动删除
- iOS 获取图片的三种方法 UIImagePickerController
- 浅析Web加密技术
- android Menu 详解2
- Mysql5.5 两台服务器互为主从同步设置
- web.xml配置错误页面,及输出错误信息
- Android 在RecyclerView中实现拖拽和滑动删除的效果
- ios绘图
- RPG人物设计:技术蓝图101
- Unknown class ViewController in Interface Builder file错误
- Java反射
- Unity自定义菜单栏
- 位图
- Gray Code
- ZOJ 3795 Grouping 强联通缩点+拓扑序+偏序集的最大链的大小