onInterceptTouchEvent方法是否应截取自己的触摸事件?

时间:2018-01-24 12:32:19

标签: android android-custom-view viewgroup motionevent android-touch-event

在Android文档中,它表示OnInterceptTouchEventViewGroup方法:

  

允许您在向孩子发送事件时观看事件

这对我来说有点暗示,它只会观察其子女的事件,不包括自己的事件。那应该不是这样吗?

我做了一个快速测试,无论我是在ViewGroup本身上点击子视图(绿色方块)还是在其外部,该方法都会触发:

自定义视图:

public class TestViewGroup extends FrameLayout {

    /* Constructors 
       and other bla bla... */

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        Log.d("TestViewGroup", "TheTruth: " + ev.toString());
        return true;
    }
}

布局:

<?xml version="1.0" encoding="utf-8"?>
<com.example.someapp.main.TestViewGroup xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <View
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_gravity="bottom"
        android:background="#151" />
</com.example.someapp.main.TestViewGroup>

enter image description here

为什么吗

最终我会在绿色广场的位置显示地图,我想只听那些从地图区域外开始的触摸屏事件。

0 个答案:

没有答案