我想用Airbnb的Epoxy库编写这个todo()部分来执行拖放操作,我有一个onModelMoved()方法,我想不出该编写什么代码或方法需要帮助!
EpoxyTouchHelper.initDragging(controller)
.withRecyclerView(binding.epoxyRecyclerView)
.forVerticalList()
.withTarget(HomeEpoxyController.ItemEntityEpoxyModel::class.java)
.andCallbacks(object :
EpoxyTouchHelper.DragCallbacks<HomeEpoxyController.ItemEntityEpoxyModel>() {
override fun onModelMoved(
fromPosition: Int,
toPosition: Int,
modelBeingMoved: HomeEpoxyController.ItemEntityEpoxyModel?,
itemView: View?
) {
// todo()
}
})下面是我在HomeEpoxyController中的数据类,如果它可以帮助您
data class ItemEntityEpoxyModel(
val itemEntity: ItemEntity,
val itemEntityInterface: ItemEntityInterface
) : ViewBindingKotlinModel<ModelItemEntityBinding>(R.layout.model_item_entity) {
override fun ModelItemEntityBinding.bind() {
titleTextView.text = itemEntity.title
if(itemEntity.description == null){
descriptionTextView.isGone = true
}else{
descriptionTextView.isVisible = true
descriptionTextView.text = itemEntity.description
}
deleteImageView.setOnClickListener {
itemEntityInterface.onDeleteItemEntity(itemEntity)
}
priorityTextView.setOnClickListener {
itemEntityInterface.onBumpPriority(itemEntity)
}
val colorRes = when(itemEntity.priority){
1 -> android.R.color.holo_green_dark
2 -> android.R.color.holo_orange_dark
3 -> android.R.color.holo_red_dark
else -> R.color.purple_500
}
priorityTextView.setBackgroundColor(ContextCompat.getColor(root.context,colorRes))
}
}发布于 2022-01-31 21:39:49
你需要更新你的待办事项清单。例如,Collections.swap(yourList, fromPosition, toPosition)
https://stackoverflow.com/questions/70629673
复制相似问题