Android使两个重叠的视图接收并处理相同的触摸事件

时间:2014-03-14 15:13:07

标签: android touch views overlapping touch-event

我使用RelativeLayout重叠两个不同的视图。两个视图都填满整个屏幕。 如果用户触摸屏幕,我希望两个视图都能够接收TouchEvent并激活他们自己的onTouch - 方法。目前,只有一个视图收到TouchEvent 如何让两个视图都能收到TouchEvent?

提前感谢您的帮助。

编辑:这是代码

touchView.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {

                view1.onTouchEvent(event);
                view2.onTouchEvent(event);
                return false;
            }

        }); 

3 个答案:

答案 0 :(得分:2)

您可以创建第三个不可见的视图并将其放置在重叠部分的顶部。然后在其TouchEvent中执行这两个TouchEvent的操作

答案 1 :(得分:0)

对于顶视图,指定clickable = false

它将允许触摸通过它进行拦截

答案 2 :(得分:0)

您可以尝试检查rawX& TouchEvent的rawY位于未获取事件的视图的hitRect内。如果是,您可以使用dispatchTouchEvent(MotionEvent)TouchEvent发送未获得该事件的视图