# 拖拽排序/侧滑删除
拖拽排序
和侧滑删除
都是基于原生的ItemTouchHelper
实现, 都是RV
的原生组件.
拖拽排序
功能比较常见,不多介绍.
这里的侧滑删除
, 并非侧滑菜单
, 需要注意这一点.因为ItemTouchHelper
原生不支持侧滑菜单
.
拖拽排序 | 侧滑删除 |
---|---|
# 功能使用
此功能需要DragCallbackHelper
组件的支持:
DragCallbackHelper().attachToRecyclerView(recyclerView)
可配置的参数:
/**支持拖拽的方向, 0表示不开启拖拽*/
var itemDragFlag = FLAG_ALL
/**支持滑动删除的方向, 0表示不开启滑动*/
var itemSwipeFlag = FLAG_NONE
/**
* 长按是否激活拖拽,手动开始拖拽请调用[startDrag]
* */
var enableLongPressDrag = true
FLAG
其实就是ItemTouchHelper.LEFT
等的组合, 如下:
public val FLAG_NO_INIT = -1
public val FLAG_NONE = 0
public val FLAG_ALL = ItemTouchHelper.LEFT or
ItemTouchHelper.RIGHT or
ItemTouchHelper.DOWN or
ItemTouchHelper.UP
public val FLAG_VERTICAL = ItemTouchHelper.DOWN or ItemTouchHelper.UP
public val FLAG_HORIZONTAL = ItemTouchHelper.LEFT or ItemTouchHelper.RIGHT
# 可设置的回调
/**[clearView]的回调*/
var onClearView: (recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder) -> Unit =
{ _, _ ->
}
/**[onSelectedChanged]的回调*/
var onSelectedChanged: (viewHolder: RecyclerView.ViewHolder?, actionState: Int) -> Unit =
{ _, _ -> }
# 滑动删除额外配置
默认情况下, 滑动删除
的时候会出现滑动可删除
的提示.
这个提示可以通过swipeTipText
属性配置提示文本
,
可以通过enableSwipeTip
属性关闭
or开启
提示.