其他分享
首页 > 其他分享> > ExtJS 布局-VBox布局(VBox layout)

ExtJS 布局-VBox布局(VBox layout)

作者:互联网

更新记录:
2022年6月9日 发布。
2022年6月1日 开始。

1.说明

vbox布局类似auto布局,将子组件一个接一个垂直向下放置,既可以在水平方向也可以垂直方向改变排列方式。

image

设置布局方法

在容器中设置

layout: 'vbox'
layoutConfig: {

}

在子组件中使用的flex选项设置 相对权重直接设置width属性
注意:flex属性表示权重(优先级),不是表示大小,越大占用空间越大。
宽度计算公式:
((Container Height– Fixed Height of Child Components) / Sum of Flexes) * Flex Value

{
    title: 'Item 1',
    html: 'Item 1',
    flex: 1
}

或者

在容器中设置

layout: {
   type: 'vbox',
}

在子组件中使用的flex选项 设置相对值 或 直接设置width属性。
注意:flex属性表示权重(优先级),不是表示大小,越大占用空间越大。

{
    title: 'Item 1',
    html: 'Item 1',
    flex: 1
}

布局相关的配置

layout: {
   type: 'vbox',
   pack: 'start',
   align: 'stretch',
}

pack属性指定垂直对齐的方式,可取值:start(上)\center(中)\end(下)。
align属性指定水平对齐的方式,可取值:left(左)/middle(中)/right(右)/stretch(容器内容区的宽度铺满)/ stretchmax(拉伸到最宽子项宽度)。

layoutConfig: {
    pack: 'start',
    align: 'top',
},

适合场景

适合场景:

垂直放置多个子组件。

实例

实例:混合flex和width

image
代码:

{
    xtype: 'panel',
    width: 700,
    height: 400,
    layout: {
        type: 'vbox',
        pack: 'end',
        align: 'stretch',
    },
    items: [
        {
            title: 'Item 1',
            html: 'flex: 1',
            flex: 1
        },
        {
            title: 'Item 2',
            html: 'height: 100',
            height: 100
        },
        {
            title: 'Item 3',
            html: 'flex: 2',
            flex: 2
        }
    ]
}

实例:flex按1221等分

image
代码:

{
    xtype: 'panel',
    layout : {
        type :'vbox',
        align: 'stretch'
    },
    width : 600,
    height :400,
    frame :true,
    items : [
        {
            title: 'Panel 1',
            html : 'Panel with flex 1',
            margin: '0 0 10 0',
            flex : 1
        },
        {
            title: 'Panel 2',
            html : 'Panel with flex 2',
            margin: '0 0 10 0',
            flex : 2
        },
        {
            title: 'Panel 3',
            flex : 2,
            margin: '0 0 10 0',
            html : 'Panel with flex 2'
        },
        {
            title: 'Panel 4',
            html : 'Panel with flex 1',
            margin: '0 0 10 0',
            flex : 1
        }
    ]
}

标签:flex,layout,title,布局,VBox,Item,html,Panel
来源: https://www.cnblogs.com/cqpanda/p/16333078.html