2011-03-28 38 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()函数可以执行此操作。

相关问题