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 のコンポーネントには幅の関数があるため、次のことを試すことができると思います。

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)動的にしようとすると、機能しません。

これが私に起こったことです。setWidth()Sencha Architect の UI デザイナーがパネルの最大幅を設定しましたが、最大値を超えようとしていました。

そんなばかげたことのために1時間を無駄にしました!:(

于 2015-05-07T12:53:23.427 に答える