Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GWT:UI在调整窗口大小之前不会加载_Java_Eclipse_Gwt_User Interface_Google Maps Api 3 - Fatal编程技术网

Java GWT:UI在调整窗口大小之前不会加载

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

我知道GWT不再支持怪癖模式。因此,不鼓励开发人员使用RootPanel、DockPanel等。在使用RootLayoutPanel和DockLayoutPanel实现我的应用程序时,我发现在调整浏览器窗口大小之前,UI不会加载

为了清楚起见,我在开发模式下运行我的应用程序,并刷新浏览器Google Chrome。我的浏览器中没有显示任何内容,尽管根据我的Eclipse控制台,所有内容似乎都加载良好。一旦我调整了浏览器窗口的大小,我的所有内容都可以正常加载

虽然我在DockLayoutPanel中插入了一个MapWidget,但似乎MapWidget并不是罪魁祸首,因为删除line panel.addmapWidget仍然有相同的结果。我会错过什么

下面是我主课的代码。为了简洁起见,省略了HTML代码。在我的实际代码中,我只将文本和样式放在其中

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是否给定了静态大小,页面都需要调整大小才能加载。