如何禁用 ViewGroup 的所有子级上的所有触摸事件?

2023-11-24

我有一个FrameLayout包含许多东西的容器(包括ScrollView, WebView, ViewPager...).

我希望能够触发此容器上的 onClick 事件,但似乎有些ScrollView, WebView and ViewPager拦截触摸事件,因为只有当我单击容器中没有任何触摸事件的部分时才会触发 onClick 事件...

如何禁用容器子级上的所有触摸事件,以便能够在其中的任何位置触发 onClick?

UPDATE

这个想法是拥有类似于 Android 3.2 中的任务管理器的东西,即应用程序的当前可见屏幕显示为可以单击的缩小图标。

Thanks


可能我误解了一些东西,但我想你的问题的答案很简单: 如果您不想向子级发送任何触摸事件 - 那么您只需要覆盖ViewGroup.onInterceptTouchEvent (MotionEvent ev) API参考像这样:

public boolean onInterceptTouchEvent (MotionEvent ev){
    return true;
}

根据 android 文档,这意味着您的 ViewGroup 将始终拦截所有触摸事件,并且不会将它们分派给子级。所有这些都将被引导至ViewGroup.onTouchEvent(MotionEvent ev)ViewGroup 的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何禁用 ViewGroup 的所有子级上的所有触摸事件? 的相关文章

随机推荐