0

我创建了一个带有滑动删除功能的 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)

它禁用滚动的问题。

4

0 回答 0