我创建了一个带有滑动删除功能的 recyclerView。
我有一个我不想存档的项目。
我想在无法删除的项目上实现滑动,以便用户可以滚动一点,当他滚动时,他看到的是红色背景,表明该项目无法存档,一旦他停止滑动,滑动就会关闭制作动画以存档项目。
通过将此行添加到我的 onDrawChild 方法,我设法减少了项目滚动:
if (hasActiveActions) {
// layout that I don't want to be deleted
super.onChildDraw(c, recyclerView, viewHolder, dX / 5, dY, actionState, isCurrentlyActive)
} else {
super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive)
}
问题是,一旦用户滚动足够多,删除项目的动画仍然会出现,我希望获得与项目滑动一点但随后关闭而不是动画相同的行为。
我还尝试覆盖 getMovementFlags:
override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder): Int {
val adapter = recyclerView.adapter
if (adapter is NotificationsRecyclerViewAdapter) {
if (adapter.itemCount > 0 && adapter.notifications[viewHolder.adapterPosition].hasActiveNotifications())
// disable swipe for item with actions
return 0
}
return super.getMovementFlags(recyclerView, viewHolder)
它禁用滚动的问题。