Показывать централизованное PopupWindow

В моем приложении есть всплывающие окна, они полноэкранные, и следующий код:

    content.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT));
    content.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    int screenWidth = windowManager.getDefaultDisplay().getWidth();
    int screenHeight = windowManager.getDefaultDisplay().getHeight();
    int x = screenWidth / 2 - content.getMeasuredWidth() / 2;
    int y = screenHeight / 2 - content.getMeasuredHeight() / 2;
    window.showAtLocation(content, Gravity.NO_GRAVITY, x, y);

Сделать отображение окна центрированным.

Но у меня есть другое Activity, которое не является полноэкранным, когда всплывающее окно открывается, оно происходит справа от того места, где оно должно быть.

Пытаясь понять, почему это происходит, я думаю, что showAtLocation показывает его относительно текущего Activity, но мне нужно показать его относительно дисплея.

Как я могу это сделать? Или есть более простой способ просто центрировать всплывающее окно?

43
задан Bae 7 July 2015 в 01:29
поделиться