无法在 RecyclerView 中使用滑动手势调整搜索栏值

Posted

技术标签:

【中文标题】无法在 RecyclerView 中使用滑动手势调整搜索栏值【英文标题】:Cannot adjust seekbar value with swipe gesture in RecyclerView 【发布时间】:2017-12-26 16:13:13 【问题描述】:

如here 所述,我创建了一个带有“交换项目位置”和“使用滑动手势删除项目”的 RecyclerView。除了项目中包含的搜索栏外,一切正常。我只能通过点击某个位置来调整搜索栏的值,但不能通过点击可拖动的拇指然后向左或向右移动来更改值。在这些情况下会发生滑动手势从父 RecyclerView 中删除项目。

如何在搜索栏上发生滑动手势时更改搜索栏的值,并且仅在搜索栏外执行滑动手势时将其移除?

【问题讨论】:

听起来好像父级正在拦截触摸事件。你可以在这里阅读:developer.android.com/training/gestures/viewgroup.html @Patrick 你有没有找到任何解决方案,我也面临同样的问题? 【参考方案1】:

@Ben P.:我创建了自己的继承自 LinearLayout 的类,实现了 onInterceptTouchEvent,但我无法中断滑动手势。我猜是因为我需要拦截 RecyclerView 方法,但是,这个类没有提供可以被覆盖的 onInterceptTouchEvent 方法。

相反,我解决了我的问题如下:我在 RecyclerView 中显示了两种类型的视图(defaultedit),并且只有 edit 类型包含一个 SeekBar。由于不允许删除当前编辑的项目是绝对可以的,我在 getMovementFlags 方法中区分了 ViewHolder 的类型,我从 ItemTouchHelper.Callback() 覆盖。

(对不起,我没有提到这两种视图类型的信息。)

【讨论】:

以上是关于无法在 RecyclerView 中使用滑动手势调整搜索栏值的主要内容,如果未能解决你的问题,请参考以下文章

ViewPager2 TabLayout Fragment RecyclerView滑动冲突

滑动垂直手势无法使用UITableView

无法识别滑动手势

Android学习之Fragment的各种实现功能(头部折叠,循环列表RecyclerView,左右滑动ViewPager)

Android学习之Fragment的各种实现功能(头部折叠,循环列表RecyclerView,左右滑动ViewPager)

Android学习之Fragment的各种实现功能(头部折叠,循环列表RecyclerView,左右滑动ViewPager)