ItemTouchHelper
This is a utility class to add swipe to dismiss and drag & drop support to RecyclerView.
它是一个非常强大的工具,感觉跟ViewDragHelper一样,不过ItemTouchHelper顾名思义是处理item的touch事件的.
它能够让你非常容易实现侧滑删除,拖拽的功能.
今天,就拿它来实现以下侧滑删除!~
开始
首先我们看下ItemTouchHelper的构造方法ItemTouchHelper(Callback callback)
它需要我们传入一个Callback
而刚好Android非常任性,已经帮我们实现了一个:SimpleCallback
甚至,在注释里已经给我们写好了样例!!!有兴趣的同学可以去看看,这里就不给出了.
接下来上代码!~
定义一个Adapter
这个adapter没什么特别的,挺简单的,相信大家会
1 | public static class ListAdapter extends RecyclerView.Adapter<ListAdapter.ViewHolder> implements View.OnClickListener{ |
定义一个RecyclerView
设置为垂直list的样式,并且与上面的Adapter关联
1 | mRvList.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false)); |
实例化一个ItemTouchHelper
再实例化ItemTouchHelper之前我们再看一下SimpleCallback的构造方法:
ItemTouchHelper.SimpleCallback(int dragDirs, int swipeDirs)
- dragDirs 代表你想拖拽的方向
- swipeDirs 你想滑动的方向
都分别有一下值,很好理解:
- LEFT
- RIGHT
- START
- END
- UP
- DOWN
动手
1 | // 0 代表我不拖拽, ItemTouchHelper.RIGHT代表我往右滑动 |
大功告成
来看看效果图:
由于写在七夕,所以开启了恶搞拆情侣模式,哈哈~~~
总结
ItemTouchHelper跟ViewDragHelper一样,给我们带来了极大的方便,不经想问,Android还有什么Helper也这么牛逼而鲜为人知?
预告
不出意外,下期实现拖拽功能,再见!~
完整的代码在我的Github上~