我正在使用几个RecyclerView项填充SlidingPaneLayout,以实现“按一下删除”功能(基本上,将一个项目拖到右边显示一个删除按钮)。
问题:当我将一个项目拖到右边时,RecyclerView似乎也会截取我的触摸,如果我的拖动有点对角线(或者不是太水平)-- RecyclerView开始滚动,SlidingPaneLayout取消了窗格的关闭/打开。
我尝试在每个SlidingPaneLayout中添加一个触摸侦听器,以防止RecyclerView在ACTION_DOWN上执行SlidingPaneLayout时拦截触摸,但这并不好,因为它会立即阻止滚动
想法?
发布于 2015-05-06 13:24:58
解决办法:
在以下条件下,防止RecyclerView拦截触摸事件:
10% <滑动窗格偏移< 90%
i.e
ViewParent parent = ...; // Should be the RecyclerView
if (slideOffset > 0.1 && slideOffset < 0.9) {
parent.requestDisallowInterceptTouchEvent(true);
} else {
parent.requestDisallowInterceptTouchEvent(false);
}https://stackoverflow.com/questions/30077852
复制相似问题