android中如何获取视图下视图的点击事件

bin*_*oan 6 layout android overlay onclicklistener android-recyclerview

几天以来,我一直在考虑如何将单击事件委托给位于另一个视图下方的视图。重要的是,覆盖视图仍然必须接收点击事件。

情况是这样的:

我有一个包含项目的 RecyclerView。RecyclerView 采用全宽度,每侧都有填充,因此过度滚动动画可以很好地分布在全宽度上。我有一个工具栏位于 RecyclerView(扩展样式)下方。工具栏在窗口的右上边缘有一个菜单项。

现在我不会收到此菜单项上的任何单击事件,因为 RecyclerView 与该菜单项重叠。但如果我考虑填充,RecyclerView 的项目不会与菜单项重叠。但由于填充没有边距,RecyclerView 仍然与菜单项不可见地重叠。但我讨厌将填充更改为边距,因为这样过度滚动动画就会在两侧(左侧和右侧)被剪切。

您对如何将过度滚动动画展开到全宽,或者如何通过 RecyclerView 的填充委托单击事件有什么建议吗?

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

Rey*_*hra 3

这对我有用。

  mRecyclerView.setOnTouchListener((v, event) -> {
            MotionEvent e = MotionEvent.obtain(event);
            mHeaderLayout.dispatchTouchEvent(e);
            e.recycle();
            return false;
        });
Run Code Online (Sandbox Code Playgroud)