android 拦截事件

Posted 勇者工作室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 拦截事件相关的知识,希望对你有一定的参考价值。

在做布局文件时,经常会有布局组件压在其它组件上面,这样点击上面布局没有控件的部分就会点中下面布局的控件。

如何拦截事件不让事件传递到下一层呢?

布局组件onTouchEvent() 用于处理事件,返回值决定当前控件是否消费(consume)了这个事件。

返回值为true时不在传递给子控件。

 View conentView = (View)ctx.findViewById(R.id.mylayoutid);
        conentView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return true;
            }
        });
            

  

以上是关于android 拦截事件的主要内容,如果未能解决你的问题,请参考以下文章

ViewPager里面的TextView拦截触摸事件

Android滑动事件冲突(上)

Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段

Android上最近捕获的文件事件拦截

Android触摸事件分发

Android 仿IOS边缘滑动事件监听