布局有什么区别:'hbox'和布局:'列'

时间:2013-08-19 09:58:16

标签: extjs extjs4

layout:'hbox'layout:'column'之间有什么区别?它只是语法吗?

示例'':

layout:'column',
items: [{
    title: 'Width = 25%',
    columnWidth: .25,
    html: 'Content'
},{
    title: 'Width = 75%',
    columnWidth: .75,
    html: 'Content'
},{
    title: 'Width = 250px',
    width: 250,
    html: 'Content'
}]

示例' hbox ':

layout: {
    type: 'hbox',
    pack: 'start',
    align: 'stretch'
},
items: [
    {html:'panel 1', flex:1},
    {html:'panel 2', width:150},
    {html:'panel 3', flex:2}
]

3 个答案:

答案 0 :(得分:5)

column有几个明显的优点尚未涵盖。它比hbox轻得多。 Column只是让浏览器使用浮点布局其内容而不是设置left它的标记比hbox更少。在大多数情况下,它还可以更好地处理溢出。

例如,在列布局中对比窗口上的hbox

var win = Ext.create('Ext.Window', {
    width: 700,
    height: 400,
    title: "Column",
    defaults: {
        height: 50,
        width: 300
    },
    layout: {
        type: 'column'
    },
    items: [{
        xtype: 'panel',
        title: 'Inner Panel One'
    },{
        xtype: 'panel',
        title: 'Inner Panel Two'
    },{
        xtype: 'panel',
        title: 'Inner Panel Three'
    }]
});

win.show()

var win2 = Ext.create('Ext.Window', {
    width: 700,
    height: 400,
    title: "Hbox",
    defaults: {
        height: 50,
        width: 300
    },
    layout: {
        type: 'hbox'
    },
    items: [{
        xtype: 'panel',
        title: 'Inner Panel One'
    },{
        xtype: 'panel',
        title: 'Inner Panel Two'
    },{
        xtype: 'panel',
        title: 'Inner Panel Three'
    }]
});

win2.show()

600px resize

300px resize

总结一下,将column视为auto布局,将事物向左移动,将hbox视为box布局,添加{{1}等功能}和stretch。他们都有自己的屈曲版本。

答案 1 :(得分:3)

Column存在于VBoxHBox之前的早期版本的框架中。它主要是出于兼容性原因而保留的。 HBox提供了更多功能(packalign)等。

答案 2 :(得分:2)

  

色谱柱   没有自动高度和HBox,所有区域都已满。

看看这些例子:

  

http://dev.sencha.com/deploy/ext-4.0.0/examples/layout-browser/layout-browser.html