2

由于有些日子,我正在计算如何将点击事件委托给位于另一个视图之下的视图。重要的是,叠加视图仍然需要接收点击事件。如何获取视图下的一个视图的点击事件android

情况是这样的:

我有一个RecyclerView项目。 RecyclerView采用全宽度,每边都有填充,所以overscroll动画在整个宽度上均匀分布。 而且我有一个工具栏,在RecyclerView(扩展样式)下面。工具栏在窗口的右上边缘有一个菜单项。

现在我不会收到此菜单项上的任何点击事件,因为RecyclerView与项目重叠。但是如果我考虑填充物,RecyclerView的项目不会与菜单项重叠。但是由于填充没有边距,因此RecyclerView无形地重叠了菜单项。但我讨厌将填充改为边距,因为那样会在两侧(左侧和右侧)切割超卷动画。

你有什么建议可以将超卷动画扩展为全宽,或者我可以通过我的RecyclerView的填充来委托点击事件?

任何帮助表示赞赏。谢谢。

+0

您是否发现该解决方案请帮助m卡住10天以上。 – 2017-07-14 15:23:04

+0

我知道我迟到了,但最终我改变了整个布局。此外,您还可以重写触摸事件,以便回收站不再响应触摸事件。 [https://stackoverflow.com/questions/18520072/make-invisible-view-handle-touches-as-action-outside](https://stackoverflow.com/questions/18520072/make-invisible-view-handle-触摸-AS - 动作 - 外)。然而,这是相当复杂的,我建议你改变你的设计,使其没有硬核方法。 – binloan 2017-08-11 07:19:02

+0

看到下面的答案可能会被别人骗过。 – 2017-08-11 07:30:27

回答

0

这适用于我。

mRecyclerView.setOnTouchListener((v, event) -> { 
      MotionEvent e = MotionEvent.obtain(event); 
      mHeaderLayout.dispatchTouchEvent(e); 
      e.recycle(); 
      return false; 
     }); 
相关问题