在RecyclerView上处理TouchEvent

时间:2018-07-25 12:38:56

标签: android android-recyclerview android-event android-touch-event

我有实现RecyclerView的这段代码,我想添加一些手势。我想做两件事,但我不知道,因为我是新来的。

  1. 当有人单击RecyclerView时,我想从Activity捕获事件,然后再下到回收站。这就是为什么我从dispatchTouchEvent返回true的原因。但这不起作用,因为调用了onTouch。

  2. 如果我们允许事件通过,则当触摸事件进入回收站(OnTouch方法)时,不会调用Activity的{​​{1}} 。之所以调用它是因为事件处理会冒泡。

    onTouchEvent

1 个答案:

答案 0 :(得分:0)

您不希望回收者视图吃事件,那么您有两种方法

  

这就是为什么我从dispatchTouchEvent返回true

  1. 从dispatchTouchEvent返回 false ,当您在recyclerView中执行此操作时,则不会调用recyclerView的子级的dispatchTouchEvent(),因此事件甚至不会消失,因此不会发生气泡。这意味着将调用recyclerView的onTouch / onTouchEvent或它的任何子项。直接调用Activity上的onTouch。

  2. 从onTouch()返回 false ,在这种情况下,该事件将一直持续到所有子视图为止,如果未使用它们,则将到达回收者视图,并且您从此处返回false然后将调用Activity的onTouch。

注意: 因此,您必须选择一个不能同时拥有的。