0

我填充了RecyclerView几个SlidingPaneLayout项目,以实现“滑动删除”功能(基本上,向右拖动项目会显示一个删除按钮)

问题:当我向右拖动一个项目时,它似乎RecyclerView也拦截了我的触摸,如果我的拖动有点对角线(或不太水平) -RecyclerView开始滚动并SlidingPaneLayout取消窗格的关闭/打开

我已经尝试为每个触摸监听器添加一个触摸监听器,以SlidingPaneLayout防止 RecyclerView 一旦ACTION_DOWN在 上执行时拦截触摸SlidingPaneLayout,但这并不好,因为它会立即阻止滚动

想法?

4

1 回答 1

0

解决方案:

给定以下条件,防止 RecyclerView 拦截触摸事件:

10% < 滑动窗格偏移 < 90%

IE

ViewParent parent = ...; // Should be the RecyclerView
if (slideOffset > 0.1 && slideOffset < 0.9) {
    parent.requestDisallowInterceptTouchEvent(true);
} else {
    parent.requestDisallowInterceptTouchEvent(false);
}
于 2015-05-06T13:24:58.467 回答