在PageSnapHelper附带的RecyclerView中使用TouchImageView吗?

时间:2019-01-08 13:41:42

标签: android-recyclerview android-viewpager swipe swipe-gesture touchimageview

我的应用正在做一个图库,该图库在RecyclerView上使用TouchImageView

我试图使用此类在PageSnapHelper附带的RecyclerView中显示多个全屏图像

这可以正常工作,但是使用缩放非常尴尬。如果我尝试捏缩放,图像会左右移动但不会缩放。只有双击可以使用。

我认为与PageSnapHelper附带的RecyclerView的滑动和滚动存在冲突。

当捏合缩放滑动时也可以使TouchImageView触摸事件覆盖PageSnapHelper事件吗?

为简单起见,我希望聊天应用程序(Whatsapp和电报)Image Slider具有相同的行为,同时支持滑动和捏缩放

注意,我搜索了stackoverflow,但是只有ViewPagers解决方案,没有recyclerview

1 个答案:

答案 0 :(得分:0)

我不确定自己要问的是什么,但是如果我做对了,问题是您无法捏变焦,因为RecyclerView会将捏动作识别为轻扫。 如果需要,可以始终通过以下方式禁止RecyclerView拦截touch事件(并自己处理该事件):

view.parent.requestDisallowInterceptTouchEvent(true)

在PrivateOnTouchListener的onTouch方法内部。

如果您想要一个更简单的解决方案,则还可以检查当前视图是否已缩放或至少有两个手指在触摸该视图。如果是,则禁止父母拦截触摸事件。内部的PrivateOnTouchListener代码将如下所示:

     if (isZoomed || event.pointerCount >= 2) {
        v.parent.requestDisallowInterceptTouchEvent(true)
     }

现在仅在不缩放视图且只有一根手指触摸视图的情况下,才允许父级拦截触摸事件。