【发布时间】:2021-10-29 04:20:42
【问题描述】:
我正在创建一个启动器应用程序,我正在使用 RecyclerView 和 ItemTouchHelper 对图标进行重新排序,效果很好。
但我想将我的项目拖放到另一个回收站视图(文件夹、底部图标、其他页面)
ItemTouchHelper 可以吗?我该怎么做?
这是我的代码:
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)
结果:
【问题讨论】:
标签: android kotlin android-recyclerview android-viewpager itemtouchhelper