如何解决[RecyclerView & ItemTouchHelper]setPadding 为 RecyclerView 后,拖拽项目失败?
1.itemtouchhelper 起初运行良好。 Kotlin 代码如下
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)
2.如果我将Padding设置为RecyclerView,当我尝试拖动item时会出现错误
mRecyclerView.setPadding(0,250,0) // (left,top,right,bottom)
当recyclerview在其顶部时,我们可以很容易地拖动项目(recyclerview尚未滚动,它在其顶部)。但是,如果 recyclerview 不在其顶部(recyclerview 已向下滚动),则当我拖动该项目时,它会立即到达最高位置,而不是我拖动到的位置。
观看 gif 以了解更多详细信息,有人可以帮助我 :(
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。