2011-03-28 66 views
4

在我的網站上,我有許多Google Maps(v3),您可以通過TabPanel(每個標籤一個)選擇,但切換標籤時出現問題。當您選擇選項卡時,它不會「喚醒」地圖。爲了解決這個問題,我只需要使用ResizeEvent.fire(源碼,Window.getClientWidth(),Window.getClientHight());這將激活地圖上的調整大小監聽器並「喚醒它」。我的問題是,我不能得到一個指向瀏覽器窗口的已註冊的resize處理程序的指針(它在com.google.gwt.user.client.Window.handlers中是包保護的),因此我不知道用什麼作爲源代碼。如果任何人有我的解決方案或其他可能的解決方案的答案,將不勝感激。GWT中的Resize事件(Google Web Toolkit)

謝謝,湯姆

回答

0

感謝您的答覆,但我想通了,這三行:
HasLatLng center = mapWidget.getMap().getCenter();
Event.trigger(mapWidget.getMap(), "resize");
mapWidget.getMap().setCenter(center);
做的伎倆。這基本上是在最初加載地圖時發生的。在MapWidget的onLoad()方法中,它會調用super.onLoad(),然後執行這三條線以「喚醒」地圖並保留中心點。

+0

找不到Event.Trigger。請看看:http://stackoverflow.com/questions/11543276/trigger-resize-event-to-google-maps-from-gwt-2-5-using-gwt-maps-3-8-0 – Spiff 2013-10-16 15:05:08

0

我不知道,如果使用調整是這樣做(我以前沒有嵌入地圖)的最佳方式,但你可以考慮使用TabLayoutPanel代替的TabPanel,和呼叫面板。 onResize()而不是發起調整大小事件。請注意,您需要將* LayoutPanel s(或實現ProvidesResize的東西)一直使用到文檔的根目錄,並且您的頁面需要以標準模式呈現。

0

如果您使用的是GWT-Maps-V3-ApiMapWidget類中有triggerResize()函數可以執行此操作。