Sencha ext:如何将Panels width设置为auto

时间:2014-04-03 03:24:41

标签: extjs

我一直试图将每个面板的宽度固定为自动,但它不起作用。 然后每次我尝试删除宽度时,它都不会在我的输出中显示任何内容。

这是我的代码:

items : [{

    region: 'north',

    xtype:'panel',

    header: false,

    layout: 'hbox',

    items: [
    {
        xtype:'contactgrid', //panel alias
        height: 200,
        width:'auto',
        // width: 500,     
        region:'center',

    },
    {
        xtype:'contactdetails', //panel alias
        height:200,
        width:'auto',
        // width: 500,
        region:'east',
    }
    ]
}]

2 个答案:

答案 0 :(得分:1)

因为你已经给了' hbox'布局到父面板,您需要为每个子组件赋予flex。 ExtJS将根据flex自动排列每个面板的宽度。

例如,

items : [{

region: 'north',

xtype:'panel',

header: false,

layout: 'hbox',

items: [
{
    xtype:'contactgrid',//panel alias
    flex: 1
},
{
    xtype:'contactdetails', //panel alias
    flex: 1
}
]
}]

无需为每个面板提供硬编码高度,宽度,否则在父面板的resize事件中不会调整其大小。

由于父面板布局是' hbox'无需为儿童小组提供区域,因为区域需要在边界区域内进行。布局,而不是在' hbox,vbox'等

我希望这可以帮到你。

由于

答案 1 :(得分:0)

您可以为子项设置flex。因此,在hbox布局中,项目将获得与flex值成比例的宽度。来自sencha docs的示例代码:

    Ext.create('Ext.Panel', {
        width: 500,
        height: 300,
        title: "HBoxLayout Panel",
        layout: {
            type: 'hbox',
            align: 'stretch'
        },
        renderTo: document.body,
        items: [{
            xtype: 'panel',
            title: 'Inner Panel One',
            flex: 2
        },{
            xtype: 'panel',
            title: 'Inner Panel Two',
            flex: 1
        },{
            xtype: 'panel',
            title: 'Inner Panel Three',
            flex: 1
        }]
    });

希望它有所帮助!!