无法在 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 中显示了两种类型的视图(default 和 edit),并且只有 edit 类型包含一个 SeekBar。由于不允许删除当前编辑的项目是绝对可以的,我在 getMovementFlags
方法中区分了 ViewHolder 的类型,我从 ItemTouchHelper.Callback()
覆盖。
(对不起,我没有提到这两种视图类型的信息。)
【讨论】:
以上是关于无法在 RecyclerView 中使用滑动手势调整搜索栏值的主要内容,如果未能解决你的问题,请参考以下文章
ViewPager2 TabLayout Fragment RecyclerView滑动冲突
Android学习之Fragment的各种实现功能(头部折叠,循环列表RecyclerView,左右滑动ViewPager)
Android学习之Fragment的各种实现功能(头部折叠,循环列表RecyclerView,左右滑动ViewPager)
Android学习之Fragment的各种实现功能(头部折叠,循环列表RecyclerView,左右滑动ViewPager)