2011-03-28 3 views
4

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

Спасибо, Том

ответ

0

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

+0

Невозможно найти Event.Trigger. Посмотрите Pls: http://stackoverflow.com/questions/11543276/trigger-resize-event-to-google-maps-from-gwt-2-5-using-gwt-maps-3-8-0 – Spiff

0

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

0

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

Смежные вопросы