首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Airbnb的Epoxy模型实现拖放功能?

如何使用Airbnb的Epoxy模型实现拖放功能?
EN

Stack Overflow用户
提问于 2022-01-08 04:47:37
回答 1查看 178关注 0票数 0

我想用Airbnb的Epoxy库编写这个todo()部分来执行拖放操作,我有一个onModelMoved()方法,我想不出该编写什么代码或方法需要帮助!

代码语言:javascript
复制
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中的数据类,如果它可以帮助您

代码语言:javascript
复制
 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))
    }

}
EN

回答 1

Stack Overflow用户

发布于 2022-01-31 21:39:49

你需要更新你的待办事项清单。例如,Collections.swap(yourList, fromPosition, toPosition)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70629673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档