event.getAction() == MotionEvent.ACTION_OUTSIDE 不起作用
时间: 2023-12-14 14:38:29 浏览: 145
android详细解释键盘和鼠标事件.pdf
`MotionEvent.ACTION_OUTSIDE` 表示用户在当前 View 之外触摸屏幕,这种事件通常用于取消当前操作或隐藏弹出窗口。但是,如果你想要在 View 之外进行一些操作,比如隐藏当前 View,你可以实现 View 的 onTouchEvent 方法,判断 MotionEvent 的动作类型是否为 `ACTION_OUTSIDE`,然后在适当的时候执行相关操作。
如果你遇到了 `MotionEvent.ACTION_OUTSIDE` 不起作用的情况,可能是因为你的 View 并没有设置可点击或可触摸。你可以在 View 的构造函数或 `onCreate` 方法中添加如下代码来启用触摸事件:
```
setClickable(true);
setFocusable(true);
setFocusableInTouchMode(true);
```
如果你的 View 是一个自定义的 ViewGroup,你需要在其子 View 的 `onTouchEvent` 方法中调用 `super.onTouchEvent(event)` 来保证父 View 的 `onTouchEvent` 方法能够被调用。同时,在子 View 中的 `onTouchEvent` 方法中也需要判断 `ACTION_OUTSIDE` 事件并执行相应的操作。
阅读全文