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()
超过最大值

为这么愚蠢的事浪费了一个小时(