Центрирование GWT DialogBox не учитывает фактор «увеличения» браузера моего мобильного телефона - PullRequest
3 голосов
/ 30 марта 2012

У меня есть очень простое приложение GWT, которое собирает некоторые данные и предоставляет диалоговое окно подтверждения, когда пользователь нажимает «Отправить».Я создаю com.google.gwt.user.client.ui.DialogBox, заполняю его и вызываю метод center ().

В веб-браузере на рабочем столе диалоговое окно отображается по центру.Однако в браузере сотового телефона центрирование не учитывает масштабирование.То есть, если я увеличу масштаб формы, а затем нажму «Отправить», диалоговое окно будет центрировано по всей странице, а не по моему текущему реальному окну просмотра.Если я увеличил масштаб, диалоговое окно вообще не отображается.Приложение просто кажется мертвым, если только вы не достаточно умны, чтобы уменьшить масштаб.Примерно то же самое происходит на iPhone и моем телефоне Android.

Эффект можно увидеть на демонстрационной странице Google по адресу http://gwt.google.com/samples/Showcase/Showcase.html#!CwDialogBox Установите телефон в портретную ориентацию, нажмите кнопку Показать диалоговое окно и нажмите кнопку.Страница будет выглядеть замороженной.Вы не можете видеть всплывающее окно и не можете перемещаться.Единственное, что вы можете сделать, это уменьшить масштаб.

Я был бы рад любому решению здесь.Например, возможно, диалог может быть как-то центрирован в моем «эффективном» окне просмотра.Или, может быть, есть какой-то способ попросить браузер уменьшить масштаб?

1 Ответ

1 голос
/ 17 апреля 2012

Ну, я не выяснил, как получить информацию о реальном окне просмотра. То есть то, что пользователь может видеть после увеличения. Но разумное решение - просто расположить диалоговое окно поверх кнопки отправки. Так как они просто нажали кнопку отправки, это должно быть разумное место для отображения диалога.

int targetX = submitButton.getAbsoluteLeft() + (submitButton.getOffsetWidth() - dialogBox.getOffsetWidth()) / 2;
int targetY = submitButton.getAbsoluteTop() + (submitButton.getOffsetHeight() - dialogBox.getOffsetHeight()) / 2;
dialogBox.setPopupPosition(targetX, targetY);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...