我如何禁用ViewGroup的所有孩子的所有触摸事件?

我有一个FrameLayout容器包含很多东西(包括ScrollViewWebViewViewPager等)。

我想能够触发此容器上的onClick事件,但似乎有一些ScrollViewWebViewViewPager拦截触摸事件,因为onClick事件只有当我点击容器的部分不触发有任何他们…

如何禁用容器的所有触摸事件,以便触发onClick中的任何位置?

UPDATE

这个想法是有像Android 3.2中的任务pipe理器,即应用程序的当前可见屏幕显示为一个缩小的图标,可以点击。

谢谢

Related of "我如何禁用ViewGroup的所有孩子的所有触摸事件?"

可能是我误解了一些东西,但我想你的问题的答案是非常简单的:如果你不想把任何触摸事件派发给孩子 – 所以你只需要重写ViewGroup.onInterceptTouchEvent (MotionEvent ev) API参考如下:

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

根据Android文档,这意味着您的ViewGroup将总是拦截所有的触摸事件,而不会将它们发送给孩子。 所有这些都将被定向到ViewGroup.onTouchEvent(MotionEvent ev)方法。

你可以像这样禁用它们:

 FrameLayout parent = (FrameLayout)findViewById(some_id); disableChildsOnTouch(parent) public void disableChildsOnTouch(ViewGroup viewGroup){ int cnt = viewGroup.getChildCount(); for (int i = 0; i < cnt; i++){ View v = viewGroup.getChildAt(i); if (v instanceof ViewGroup){ disableChildsOnTouch((ViewGroup)v); } else { v.setOnTouchListener(null); v.setOnClickListener(null); //v.SETYOURLISTENER(null) } } }