我希望用户能够将叠加层移动到所选位置,并且还能够通过叠加层触摸屏幕。由于两者都不可能同时出现,我有两个按钮,一个用于移动(TYPE_SYSTEM_ALERT),另一个用于触摸(TYPE_SYSTEM_OVERLAY)。
要从ALERT切换到OVERLAY,我有这个方法:
public static void newLayoutParams (){
WindowManager.LayoutParams newLayoutParams = new WindowManager.LayoutParams(
LayoutParams.TYPE_SYSTEM_OVERLAY,
LayoutParams.FLAG_NOT_FOCUSABLE |
LayoutParams.FLAG_LAYOUT_IN_SCREEN,
PixelFormat.TRANSLUCENT);
wm.updateViewLayout(overlayButton, newLayoutParams);
}
在我的MainActivity中,我有这个按钮:
public void validate(View view) {
OverlayService.newLayoutParams();
}
问题是我收到了这个错误:
添加窗口后无法更改窗口类型。
所以我的问题是:我试图做的是不可能的,还是有解决方法?