我的应用正在做一个图库,该图库在RecyclerView上使用TouchImageView。
我试图使用此类在PageSnapHelper附带的RecyclerView中显示多个全屏图像
这可以正常工作,但是使用缩放非常尴尬。如果我尝试捏缩放,图像会左右移动但不会缩放。只有双击可以使用。
我认为与PageSnapHelper附带的RecyclerView的滑动和滚动存在冲突。
当捏合缩放滑动时也可以使TouchImageView触摸事件覆盖PageSnapHelper事件吗?
为简单起见,我希望聊天应用程序(Whatsapp和电报)Image Slider具有相同的行为,同时支持滑动和捏缩放
注意,我搜索了stackoverflow,但是只有ViewPagers解决方案,没有recyclerview
答案 0 :(得分:0)
我不确定自己要问的是什么,但是如果我做对了,问题是您无法捏变焦,因为RecyclerView会将捏动作识别为轻扫。 如果需要,可以始终通过以下方式禁止RecyclerView拦截touch事件(并自己处理该事件):
view.parent.requestDisallowInterceptTouchEvent(true)
在PrivateOnTouchListener的onTouch方法内部。
如果您想要一个更简单的解决方案,则还可以检查当前视图是否已缩放或至少有两个手指在触摸该视图。如果是,则禁止父母拦截触摸事件。内部的PrivateOnTouchListener代码将如下所示:
if (isZoomed || event.pointerCount >= 2) {
v.parent.requestDisallowInterceptTouchEvent(true)
}
现在仅在不缩放视图且只有一根手指触摸视图的情况下,才允许父级拦截触摸事件。