【问题标题】:Android make two overlapping views receive and handle the same touch eventAndroid 让两个重叠的视图接收并处理相同的触摸事件
【发布时间】:2014-03-14 15:13:07
【问题描述】:

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

提前感谢您的帮助。

编辑:这是代码

touchView.setOnTouchListener(new OnTouchListener() {

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

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

        }); 

【问题讨论】:

    标签: android touch views overlapping touch-event


    【解决方案1】:

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

    【讨论】:

    • 感谢您的快速回答!你的方法实际上对我有用。如果有人遇到同样的问题,我将发布代码。
    【解决方案2】:

    对于顶视图分配 clickable=false

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

    【讨论】:

      【解决方案3】:

      您可以尝试检查 TouchEvent 的 rawX 和 rawY 是否在未收到事件的视图的 hitRect 内。如果是这样,您可以使用dispatchTouchEvent(MotionEvent)TouchEvent 发送到未收到事件的视图

      【讨论】:

        猜你喜欢
        • 2012-07-14
        • 2016-05-28
        • 1970-01-01
        • 2023-03-28
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 2012-01-12
        • 1970-01-01
        相关资源
        最近更新 更多