首先,把功能正常的代码贴上
val itemTouchHelper = ItemTouchHelper(object: ItemTouchHelper.Callback(){
override fun getMovementFlags(recyclerView: RecyclerView, viewHolder:RecyclerView.ViewHolder): Int{
val dragFlag = ItemTouchHelper.UP | ItemTouchHelper.Down
val swipeFlags = 0
return makeMovementFlags(dragFlags, swipeFlags)
}
override fun onMove(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder){
val fromPosition = viewHolder.adapterPosition
val toPosition = target.adapterPosition
Collections.swap(mList, fromPosition, toPosition)
mAdapter.notifyItemMoved(fromPosition, toPosition)
}
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int){
}
})
itemTouchHelper.attachToRecyclerView(mRecyclerView)
视频如下
可以看到,可以正常拖拽item
2.然后,当我对RecyclerView设置了Padding后,拖拽就会出现问题
mRecyclerView.setPadding(0,250,0,0) // (left, top, right ,bottom)
看视频
如果在recyclerview在顶部,拖拽正常,。但如果RecyclerView稍微往下滑一点(不在最顶部),这种情况下拖拽item,recyclerview就会自动上滑,而不是我想要拖拽的目的位置,请问大家有遇到这个问题吗,求解!!!