【发布时间】:2015-11-26 04:13:28
【问题描述】:
我有一个应用程序应该覆盖通知栏并在触摸时执行操作..
现在,我设法通过创建一个系统覆盖按钮来使其工作:
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
statusBarHeight,
WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
| WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.RIGHT | Gravity.TOP;
WindowManager wm = (WindowManager) getApplicationContext().getSystemService(WINDOW_SERVICE);
wm.addView(mView, params);
但是当我尝试点击设备后退按钮时它不起作用。
请注意,我无法将 TYPE_SYSTEM_ERROR 更改为 TYPE_SYSTEM_ALERT,因为它必须覆盖通知栏。
我也尝试添加标志 FLAG_NOT_FOCUSABLE.. 在这种情况下,后退按钮有效,但未调用 onTouchEvent。
【问题讨论】:
标签: java android overlay android-windowmanager