RecyclerView 中的 SlidingPaneLayout 项目

SlidingPaneLayout items in RecyclerView

我正在用几个 SlidingPaneLayout 项目填充 RecyclerView,以实现 'swipe to delete' 功能(基本上,向右拖动一个项目会显示一个删除按钮)

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

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

想法?

解决方法:

防止 RecyclerView 在以下情况下拦截触摸事件:

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

ViewParent parent = ...; // Should be the RecyclerView
if (slideOffset > 0.1 && slideOffset < 0.9) {
    parent.requestDisallowInterceptTouchEvent(true);
} else {
    parent.requestDisallowInterceptTouchEvent(false);
}