Java GWT:UI在调整窗口大小之前不会加载
我知道GWT不再支持怪癖模式。因此,不鼓励开发人员使用RootPanel、DockPanel等。在使用RootLayoutPanel和DockLayoutPanel实现我的应用程序时,我发现在调整浏览器窗口大小之前,UI不会加载 为了清楚起见,我在开发模式下运行我的应用程序,并刷新浏览器Google Chrome。我的浏览器中没有显示任何内容,尽管根据我的Eclipse控制台,所有内容似乎都加载良好。一旦我调整了浏览器窗口的大小,我的所有内容都可以正常加载 虽然我在DockLayoutPanel中插入了一个MapWidget,但似乎MapWidget并不是罪魁祸首,因为删除line panel.addmapWidget仍然有相同的结果。我会错过什么 下面是我主课的代码。为了简洁起见,省略了HTML代码。在我的实际代码中,我只将文本和样式放在其中Java GWT:UI在调整窗口大小之前不会加载,java,eclipse,gwt,user-interface,google-maps-api-3,Java,Eclipse,Gwt,User Interface,Google Maps Api 3,我知道GWT不再支持怪癖模式。因此,不鼓励开发人员使用RootPanel、DockPanel等。在使用RootLayoutPanel和DockLayoutPanel实现我的应用程序时,我发现在调整浏览器窗口大小之前,UI不会加载 为了清楚起见,我在开发模式下运行我的应用程序,并刷新浏览器Google Chrome。我的浏览器中没有显示任何内容,尽管根据我的Eclipse控制台,所有内容似乎都加载良好。一旦我调整了浏览器窗口的大小,我的所有内容都可以正常加载 虽然我在DockLayoutPanel
public class MyApp implements EntryPoint {
private MapWidget mapWidget;
public void onModuleLoad() {
loadMapWidget();
}
private void loadMapWidget() {
// Does device have location tracking?
boolean sensor = false;
// Load proper map libraries
ArrayList<LoadLibrary> loadLibraries = new ArrayList<LoadApi.LoadLibrary>();
// Configure runnable
Runnable onLoad = new Runnable() {
@Override
public void run() {
// Center on Vancouver
LatLng center = LatLng.newInstance(49.261226, -123.1139268);
// Configure Map Widget options
MapOptions mapOptions = MapOptions.newInstance();
mapOptions.setMapTypeId(MapTypeId.ROADMAP);
mapOptions.setCenter(center);
mapOptions.setZoom(14);
// Instantiate and configure Map Widget
mapWidget = new MapWidget(mapOptions);
// Configure Marker options
MarkerOptions markerOptions = MarkerOptions.newInstance();
markerOptions.setPosition(LatLng.newInstance(49.261226, -123.1139268));
// Create Marker
final Marker marker = Marker.newInstance(markerOptions);
marker.setMap(mapWidget);
plotMapWidgetOntoPanel();
}
};
LoadApi.go(onLoad, loadLibraries, sensor);
}
private void plotMapWidgetOntoPanel() {
DockLayoutPanel panel = new DockLayoutPanel(Unit.EM);
panel.addEast(new HTML("..."), 20);
panel.addNorth(new HTML("..."), 1.5);
panel.addSouth(new HTML("..."), .5);
panel.add(mapWidget);
mapWidget.triggerResize();
RootLayoutPanel.get().add(panel);
}
}
为了使用gwt MapWidget,您必须绝对设置其大小 例如:mapwidget.setSize600px、600px 如果要动态设置其大小,则必须按照其父窗口小部件大小以以下方式设置其大小:
mapwidget.setSize(mapwidget.getParent().getElement().getStyle().getWidth(),
mapwidget.getParent().getElement().getStyle().getHeight());
我希望这个解决方案能帮助你 您是否在RootLayoutPanel.get.addpanel语句之后尝试了panel.forceLayout?我发现这在某些情况下是有效的。我只是尝试了一下,但不幸的是问题仍然存在。不幸的是没有运气。就像我说的,看起来MapWidget不是罪魁祸首。无论MapWidget是否给定了静态大小,页面都需要调整大小才能加载。