WindowManager怎样设置flag点击事件可以传下去
时间: 2024-02-27 13:58:36 浏览: 22
如果你想让 WindowManager 上的视图(比如悬浮窗口)可以接收到点击事件,你需要在添加视图的时候设置 FLAG_NOT_FOCUSABLE 和 FLAG_NOT_TOUCH_MODAL 标志位。
FLAG_NOT_FOCUSABLE 标志表示该视图不会获取输入焦点,即不会阻止其他视图或活动的接收焦点。而 FLAG_NOT_TOUCH_MODAL 标志表示该视图不会拦截其他视图或活动的触屏事件,即点击事件可以传递到下面的视图或活动。
你可以使用下面的代码为 WindowManager.LayoutParams 对象设置这些标志位:
```
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
PixelFormat.TRANSLUCENT);
// 添加视图到 WindowManager
windowManager.addView(view, params);
```
注意,如果你在 WindowManager 上添加了多个视图,那么需要确保只有一个视图设置了 FLAG_NOT_FOCUSABLE 和 FLAG_NOT_TOUCH_MODAL 标志位,否则可能会导致点击事件无法传递到下面的视图或活动。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)