我使用Dojo和Google Maps创建了一个简单的映射小部件。地图显示在dijit.layout.ContentPane中,设置为dijit.layout.BorderContainer的中心面板(其顶部面板中有地址字段和BusyButton);然后BorderContainer包含在dojox.layout.FloatingPane中。小部件具有对主题的订阅,该主题将在提供新地址数据时触发地图显示的刷新。更新程序功能非常简单,如下所示:
_updateAddress: function(data) {
this.addressMapper.show();
if (data === null || !data.address || data.address === "" ) {
this.address.attr("value", "");
} else {
this.address.attr("value", data.address);
}
this.mapBtn.makeBusy();
this._getMap();
}
每次调用此函数时,调用show()时都会调用FloatingPane的resize()方法,并且每次显示窗格时它都会将BorderContainer的高度和宽度增加12个像素(即使使用doLayout和isLayoutContainer)在FloatingPane上设置为false)。无论我尝试什么,我似乎无法防止这种情况发生,或者事后纠正它。
任何人都有任何想法如何解决这个问题?
提前致谢!
- Joe M -