为孩子处理onClick事件,为父处理onTouch

时间:2020-02-28 14:23:01

标签: android motionevent

我已经阅读了许多与此主题相关的主题,但仍然无法解决该问题。 这就是问题-我有一个OnTouchListener的父视图,当触摸除嵌套子视图之外的所有位置时,它都能很好地工作。因此,我需要的是整个ViewGroup,就像用户在滑动OnTouchListener中设置的那样,但是当用户单击嵌套的子级时,我需要对该子级执行click事件。 现在的代码:

            chldView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {

                if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                    considerAsClick[0] = true;
                    return true;
                }

                if (motionEvent.getAction() == MotionEvent.ACTION_MOVE) {
                    considerAsClick[0] = false;
                   return false;
                }
                if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                    if (considerAsClick[0]){
                        handleClickEvent();
                        return true;
                    }
                }
                return false;
            }
        });

问题是当我在false后返回MotionEvent.ACTION_DOWN时,父母的onTouchListener可以正常工作,并且一切看起来不错,但是没有其他动作(ACTION_MOVE,ACTION_UP)被跟踪!我发现这是正常行为,所以还可以。

当我在true之后返回MotionEvent.ACTION_DOWN时,父母的onTouchListener不起作用!无论在MotionEvent.ACTION_MOVEMotionEvent.ACTION_UP之后返回什么。

那可以做什么?

0 个答案:

没有答案