问题描述:
当将fusioncharts创建的图形组件render到Ext的Component或Container上后,如果不做处理图形组件是不会随着ext组件的重新渲染而改变自己的宽高的。如图 当浏览器放大或缩小时,ext组件会自适应这种变化,但是fusioncharts图形组件确不会随着改变。如下图
解决办法
查看fusionchars 的api发现有个方法 this.chart.resizeTo方法~ 这样监听ext组件的resize事件,调用resizeTo方法就可以解决上面的问题!
var container = new Ext.Component({
html: 'Hello world!',
height: 500,
padding: 20,
style: {
color: '#FFFFFF',
backgroundColor:'#000000'
},
items:[],
listeners:{
afterrender:function(compo){
var domId = compo.getEl().id;
this.chart = new FusionCharts({type: "column2d",
width: compo.getWidth()-40,
height: compo.getHeight()-40,
dataFormat: "json",
dataSource: me.data
});
this.chart.render(domId);
},
resize:function(compo){
compo.doComponentLayout();
this.chart.resizeTo(compo.getWidth()-40,compo.getHeight()-40);
}
}
});