无法在 RecyclerView 中使用滑动手势调整搜索栏值
Cannot adjust seekbar value with swipe gesture in RecyclerView
我按照 here 的说明,使用 "swap item positions" 和 "remove item with swipe gesture" 创建了一个 RecyclerView。除了项目中包含的搜索栏外,一切正常。我只能通过点击某个点来调整搜索栏值,但不能通过点击可拖动拇指然后向左或向右移动来更改值。在这些情况下发生的是滑动手势从父 RecyclerView 中删除项目。
如何实现在滑动手势发生时更改搜索栏的值,并且仅在搜索栏外执行滑动手势时才将其删除?
@Ben P.:我创建了自己的 class,它从 LinearLayout 扩展而来,实现了 onInterceptTouchEvent
,但我无法中断滑动手势。我猜是因为我需要拦截 RecyclerView 方法,但是,这个 class 没有提供可以被覆盖的 onInterceptTouchEvent
方法。
相反,我按如下方式解决了我的问题:我在 RecyclerView 中显示了两种类型的视图(default 和 edit)并且只有 edit 类型包含 SeekBar。因为不允许删除当前编辑的项目是绝对可以的,所以我在 getMovementFlags
方法中区分了 ViewHolder 的类型,我从 ItemTouchHelper.Callback()
.
重写了该方法
(很抱歉我没有提到这两种视图类型的信息。)
我按照 here 的说明,使用 "swap item positions" 和 "remove item with swipe gesture" 创建了一个 RecyclerView。除了项目中包含的搜索栏外,一切正常。我只能通过点击某个点来调整搜索栏值,但不能通过点击可拖动拇指然后向左或向右移动来更改值。在这些情况下发生的是滑动手势从父 RecyclerView 中删除项目。
如何实现在滑动手势发生时更改搜索栏的值,并且仅在搜索栏外执行滑动手势时才将其删除?
@Ben P.:我创建了自己的 class,它从 LinearLayout 扩展而来,实现了 onInterceptTouchEvent
,但我无法中断滑动手势。我猜是因为我需要拦截 RecyclerView 方法,但是,这个 class 没有提供可以被覆盖的 onInterceptTouchEvent
方法。
相反,我按如下方式解决了我的问题:我在 RecyclerView 中显示了两种类型的视图(default 和 edit)并且只有 edit 类型包含 SeekBar。因为不允许删除当前编辑的项目是绝对可以的,所以我在 getMovementFlags
方法中区分了 ViewHolder 的类型,我从 ItemTouchHelper.Callback()
.
(很抱歉我没有提到这两种视图类型的信息。)