Fire ResizeEvent в GWT (Google Web Toolkit) - PullRequest
4 голосов
/ 28 марта 2011

На моем сайте есть несколько карт Google (v3), которые вы можете выбрать с помощью TabPanel (по одной на вкладку), но при переключении вкладок возникает проблема.При выборе вкладки она не "просыпается" на карте.Чтобы это исправить, мне просто нужно использовать ResizeEvent.fire ( source , Window.getClientWidth (), Window.getClientHight ());это активирует слушателя изменения размера на карте и «разбудит его».Моя проблема в том, что я не могу получить указатель на зарегистрированные обработчики изменения размера для окна браузера (он защищен в com.google.gwt.user.client.Window.handlers), поэтому я не знаю, что использовать в качестве источника,Если у кого-нибудь есть ответ на моё решение или другое возможное решение, оно будет с благодарностью.

Спасибо, Том

Ответы [ 3 ]

0 голосов
/ 28 марта 2011

Спасибо за ваш ответ, но я понял, что эти три строки:
HasLatLng center = mapWidget.getMap().getCenter();
Event.trigger(mapWidget.getMap(), "resize");
mapWidget.getMap().setCenter(center);
сделать трюк. Это в основном то, что происходит, когда карта загружается изначально. В методе onLoad () для MapWidget он выполняет вызов super.onLoad (), затем выполняет эти три строки, которые «пробуждают» карту и сохраняют центральную точку.

0 голосов
/ 31 июля 2013

Если вы используете GWT-Maps-V3-Api , в классе MapWidget есть функция triggerResize(), которая выполняет свою задачу.

0 голосов
/ 28 марта 2011

Я не уверен, что использование resize - лучший способ сделать это (я раньше не встраивал карту), но вы можете рассмотреть возможность использования TabLayoutPanel вместо TabPanel и панели вызова. onResize () вместо запуска события изменения размера. Обратите внимание, что вам нужно будет использовать * LayoutPanel s (или что-то, что реализует ProvidesResize ) до корня документа, и ваша страница должна будет отображаться в стандартном режиме .

...