Android - OnTouchListener如果已按下屏幕则不会触发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android - OnTouchListener如果已按下屏幕则不会触发相关的知识,希望对你有一定的参考价值。

我有一个RelativeLayout,里面有一个ImageView。 ImageView上附有一个OnTouchListener,只要按下ImageView,它就可以正常工作。我遇到的问题是,如果我按住ImageView外的空白区域,然后尝试按下ImageView,触摸监听器就不会触发。似乎布局以某种方式吸收触摸事件。关于如何解决这个问题的任何想法?

答案

你在这里定义的行动是Multi-touch gesture。通过this doc了解如何处理此类操作。

另请参阅ACTION_POINTER_DOWN中的MotionEvent动作定义。这是当额外的手指下降时将被调用的事件。

另一答案

你好用这个代码:

imageView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            switch (event.getAction()){

                case MotionEvent.ACTION_DOWN:
                    //your code
                    break;

                case MotionEvent.ACTION_UP:
                    //your code
                    break;

                case MotionEvent.ACTION_MOVE:
                    //your code
                    break;

                default:
                    //your code
                    break;
            }

            return true;
        }
    });

以上是关于Android - OnTouchListener如果已按下屏幕则不会触发的主要内容,如果未能解决你的问题,请参考以下文章

当用户在视图上移动手指时,我们如何获取在 Android 中的 onTouchListener 中触摸的视图的 id?

我无法实现 OnTouchListener 来拖动弹出窗口

Android触碰事件

android触碰事件

Android onTouch()和onTouchEvent()区别

Android LinearLayout 多点触控