我正在使用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();
感谢您的帮助!
答案 0 :(得分:2)
在哪种设备上发生此行为?
你使用什么样的地图?的OpenLayers?谷歌地图?
您可以尝试在“start”事件页面上重绘该地图。
可能是渲染错误,请尝试在“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;
}