ExtJs 4如何动态增加面板宽度?
当我向面板添加新按钮时,我想动态增加面板的大小ExtJs 4如何动态增加面板宽度?,extjs,extjs4,Extjs,Extjs4,当我向面板添加新按钮时,我想动态增加面板的大小 Ext.onReady(function() { Ext.tip.QuickTipManager.init(); Ext.define('myPanel', { extend:'Ext.panel.Panel', bodyStyle : {"background-color":"#DFE8F6","padding":"2px"}, width:100,
Ext.onReady(function() {
Ext.tip.QuickTipManager.init();
Ext.define('myPanel', {
extend:'Ext.panel.Panel',
bodyStyle : {"background-color":"#DFE8F6","padding":"2px"},
width:100,
border:false,
viewConfig:
{
forceFit: true,
}
});
new myPanel({
id:'_panel',
renderTo:Ext.getBody()
});
new Ext.button.Button({
text:'Click Me',
renderTo:Ext.getBody(),
handler:function()
{
Ext.getCmp('_panel').add(new Ext.button.Button({text:'hello'}));
Ext.getCmp('_panel').doLayout();
}
});
});
这里的宽度是100。
当我向面板添加新按钮时,面板的宽度应根据新按钮增加。
这里按钮的大小因按钮的不同文本而不同。因为ExtJS的组件具有宽度功能,所以我认为您可以尝试:
handler:function()
{
var btn = new Ext.button.Button({text:'hello'});
var panel = Ext.getCmp('_panel');
panel.setWidth(panel.getWidth() + btn.getWidth());
panel.add(btn);
panel.doLayout();
}
您是否设置了
maxWidth
或minWidth
属性?例如,如果您将maxWidth
设置为100,并尝试动态地setWidth(120)
,它将不起作用
这就是发生在我身上的事。我的Sencha Architect UI designer设置了面板的最大宽度,我试图setWidth()
超过最大值
为这么愚蠢的事浪费了一个小时(