0

我正在使用 Qooxdoo 3.0 并开始使用移动应用程序,但在我导航到新页面然后尝试返回地图页面后,我的OpenLayers地图消失了。它在台式机上运行良好,但在我正在测试它的iPad上却不行。似乎地图被推到了 show 命令的页面后面。有没有办法将它移回顶部,或者可能发生了其他事情?这是代码:

  // Initialize both pages
  var mapPage =  meddv2.page.Maps.getInstance();      
  var controlPanel = meddv2.page.ControlPanel.getInstance();

  // *** show the map page *** - map does not appear
  controlPanel.addListener("back", function() {
      mapPage.show({reverse:true});

  // *** I thought this may help which calls map.updateSize() in the map class 
      mapPage.redrawMap(); 
    }, this);

  // Show the Control Panel
  var controlPanelButton = new qx.ui.mobile.navigationbar.Button("Control Panel");
  controlPanelButton.addListener("tap", function(){
      controlPanel.show();
  }, this);
  mapPage.getLeftContainer().add(controlPanelButton);     


  // Add the pages to the page manager.
  var manager = new qx.ui.mobile.page.Manager(false);
  manager.addDetail([
    mapPage,
    controlPanel
  ]);

  //Show the map page on load
  mapPage.show();     

谢谢你的帮助!

4

1 回答 1

2

此行为发生在哪个设备上?

你用什么样的地图?开放层?谷歌地图?

您可以尝试在页面“开始”事件中重绘该地图。

可能是渲染错误,请尝试在“styles.css”中遵循 CSS 语句:

* {
  -webkit-backface-visibility:hidden;
}

它有帮助,你必须找出哪个 div 元素需要修复。

这些是我在 qx.Mobile Maps 演示中应用的样式。这可以帮助您防止呈现错误。

#osmMap {
  -webkit-transform: translate3d(0,0,0);
}

#osmMap > div {
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
}

.olMapViewport {
  position:static !important;
}
于 2013-07-25T12:19:17.760 回答