我有一个问题,用sencha touch渲染esri Map。我显示一个tabPanel,其中包含一个包含地图的选项卡,以及另外三个选项卡。
我的问题是,当我在另一个选项卡上而不是地图选项卡时,当我调整窗口大小(或更改手机的方向)时,地图会消失。
我找出了问题的根源。当我在另一个选项卡上调整窗口大小时,地图选项卡从当前大小变为0x0到新大小。问题是当宽度和高度设置为0x0时,Esri Map需要尺寸为0x0的图块,然后出现错误。
我尝试将minWidth和minHeight设置为我的选项卡,但没有成功。
你有什么线索我能解决这个问题吗?
提前谢谢你!
答案 0 :(得分:1)
我相信我遇到了同样的问题(我当时并不确切知道确切的原因)。每当屏幕方向改变时,我都会手动更改esri贴图的尺寸以匹配面板,然后激活贴图的重新定位和调整方法。但是,如果这是从其他面板触发的,则底图将从地图中删除。
我可以通过每次更改方向时调用以下函数或将地图面板设置为活动来解决此问题:
function resizeMapDiv(){
if (appPanel.getActiveItem() === mapPanel){
var mapdiv = document.getElementById('mapDiv');
var mappanel = document.getElementById('mapPanel');
if ((mapdiv != null) && (mappanel != null) && (mapdiv.style.width != mappanel.style.width)){
mapdiv.style.width = mappanel.style.width;
mapdiv.style.height = mappanel.style.height;
map.reposition();
map.resize();
}
}
}