Drag-sort-listview 是一个支持拖拽排序和左右滑动删除功能的自定义ListView,重写了 TouchInterceptor 类来提供更加优美的拖拽动画效果。
DSLV主要特性:
-
完美的拖拽支持;
-
在拖动时提供更平滑的滚动列表滚动;
-
支持每个ListItem高度的多样性
-
公开startDrag()和stopDrag()方法;
-
有公开的接口可以自定义拖动的View
如何使用
有三个主要的元素来定义拖拽的操作。 初步地按照重要性排序如下:
- 数据重排. 拖拽排序重排ListView底层的数据顺序。由于DSLV 不知道您是如何组织您的数据的,所以重新组织数据必须由您自己通过实现相关的接口来实现。
- 开始/停止拖动. 通过调用DSLV的 startDrag() 和 stopDrag() 函数来启动或者停止拖动操作。 DragSortController这个助手类,提供了所有常用的 开始/停止/删除 拖拽操作功能。
- Floating View(拖动的View). 通过实现 FloatViewManager 接口可以控制 拖动的View 的视觉效果和行为。这样您可以显示任何内容作为 拖动的View,并且可以在拖动过程中更新其位置和显示状态。 DragSortController 助手类已经实现了该接口并提供了一些易用的实现方式。