Я пишу приложение, в котором я добавляю представление к WindowManager
, используя следующий код:
private final FloatingBubbleView mBtn;
FloatingBubbleView iv = new FloatingBubbleView(context);
this.mBtn = iv;
this.mWm = (WindowManager) mAppContext.get().getSystemService(Context.WINDOW_SERVICE);
mWm.addView(mBtn, mLp);
конфигурация параметров макета:
final WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.width = iv.getLayoutParams().width;
lp.height = iv.getLayoutParams().height;
lp.type = WindowManager.LayoutParams.TYPE_TOAST;
lp.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
lp.format = PixelFormat.TRANSLUCENT;
lp.gravity = Gravity.TOP | Gravity.LEFT;
lp.x = 0;
lp.y = 100;
Во всех операционных системах до Android 7.0 (Nougat) это представление привязано к WindowManager
при переключении действия, и я все еще могу использовать его в следующем открытом действии.
На Nougat по какой-то причине представления удаляются с экрана.
Вопрос: кто-нибудь знает, почему это происходит и как я могу восстановить прежнее поведение, которое у меня было на предыдущих системах? это как-то связано с новым режимом окна произвольной формы, добавленным в Nougat, описанным здесь: