1

我在使用 sencha touch 渲染 esri 地图时遇到问题。我显示了一个 tabPanel,其中包含一个包含地图的选项卡和 3 个其他选项卡。

我的问题是,当我在地图选项卡之外的另一个选项卡上时,当我调整窗口大小(或更改手机方向)时,地图消失了。

我确定了问题的根源。当我调整另一个选项卡上的窗口大小时,地图选项卡从当前大小变为 0x0 到新大小。问题是当宽度和高度设置为 0x0 时,Esri Map 需要尺寸为 0x0 的瓦片,然后出现错误。

我试图将 minWidth 和 minHeight 设置为我的选项卡,但没有成功。

你有什么线索我可以解决这个问题吗?

先感谢您 !

4

1 回答 1

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();
        }
    }
}
于 2011-07-25T18:41:36.047 回答