2

当我向面板添加新按钮时,我想动态增加该面板的大小?

 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。当我向面板添加新按钮时,面板的宽度应该根据新按钮增加。对于按钮的不同文本,此处按钮的大小会有所不同。

4

2 回答 2

2

因为 ExtJS 的 Components 具有宽度的功能,所以我认为您可以尝试:

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();
    }
于 2012-05-02T17:20:10.380 回答
1

你是设置maxWidth还是minWidth属性?例如,如果您设置maxWidth为 100 并尝试setWidth(120)动态设置它将不起作用。

这就是发生在我身上的事情。我的 Sencha Architect UI 设计师设置了面板的最大宽度,我试图setWidth()超过最大值。

浪费了一个小时做这么傻的事!:(

于 2015-05-07T12:53:23.427 回答