I am creating a launcher app and I am using RecyclerView and ItemTouchHelper for reorder icons and it works well.
But I want to drag and drop my items into another recycler view (folders, bottom icons, other pages)
Is it possible with ItemTouchHelper? how can I do that?
Here is my code:
val itemTouchHelper = ItemTouchHelper(object : ItemTouchHelper.Callback() {
override fun getMovementFlags(
recyclerView: RecyclerView,
viewHolder: RecyclerView.ViewHolder
): Int {
return makeMovementFlags(
ItemTouchHelper.UP or ItemTouchHelper.DOWN or ItemTouchHelper.LEFT or ItemTouchHelper.RIGHT,
0
)
}
override fun onMove(
recyclerView: RecyclerView,
viewHolder: RecyclerView.ViewHolder,
target: RecyclerView.ViewHolder
): Boolean {
adapter.moveItems(viewHolder.adapterPosition, target.adapterPosition)
return true
}
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
}
override fun isLongPressDragEnabled(): Boolean {
return true
}
override fun onSelectedChanged(viewHolder: RecyclerView.ViewHolder?, actionState: Int) {
super.onSelectedChanged(viewHolder, actionState)
viewHolder?.itemView?.animate()?.setDuration(200)?.scaleX(1.09f)?.scaleY(1.09f)?.start()
}
override fun clearView(
recyclerView: RecyclerView,
viewHolder: RecyclerView.ViewHolder
) {
super.clearView(recyclerView, viewHolder)
viewHolder?.itemView?.animate()?.setDuration(200)?.scaleX(1f)?.scaleY(1f)?.start()
}
})
itemTouchHelper.attachToRecyclerView(binding.recycler)
And the result: