Extjs 在容器中包装多个组合框

Extjs wrapping multiple combo boxes in a container

我有许多组合框,它们采用流畅的布局,彼此并排显示

如果组合框不足以 space 并排显示,我希望组合框在下方环绕。

这是我目前所拥有的 fiddle - https://fiddle.sencha.com/#view/editor&fiddle/1mn1

项目在具有布局 hbox 的容器中正确对齐,但似乎没有发生环绕溢出。

Ext.create('Ext.panel.Panel', {
title: 'Combo boxes',
width: '100%',
layout: 'vbox',
items: [{
    xtype: 'container',
    layout: 'hbox',
    items: [{                    
        xtype:'combo',
        store: states,
        displayField: 'name',
        valueField: 'abbr'            
    },
    {                    
        xtype:'combo',
        store: states,
        displayField: 'name',
        valueField: 'abbr'            
    },
    {                    
        xtype:'combo',
        store: states,
        displayField: 'name',
        valueField: 'abbr'            
    },
    {                    
        xtype:'combo',
        store: states,
        displayField: 'name',
        valueField: 'abbr'            
    }]
}],        
renderTo: Ext.getBody()

});

如何让组合框按要求换行?

    // The data store containing the list of states
var states = Ext.create('Ext.data.Store', {
    fields: ['abbr', 'name'],
    data: [{
            "abbr": "AL",
            "name": "Alabama"
        }, {
            "abbr": "AK",
            "name": "Alaska"
        }, {
            "abbr": "AZ",
            "name": "Arizona"
        }
        //...
    ]
});
Ext.create({
    xtype: 'viewport',
    renderTo: Ext.getBody(),
    items: [
        Ext.create('Ext.panel.Panel', {
            title: 'Combo boxes',
            style: 'display: flex;',
            defaults: {
                style: 'float:left;'
            },
            items: [{
                xtype: 'combo',
                store: states,
                displayField: 'name',
                valueField: 'abbr'
            }, {
                xtype: 'combo',
                store: states,
                displayField: 'name',
                valueField: 'abbr'
            }, {
                xtype: 'combo',
                store: states,
                displayField: 'name',
                valueField: 'abbr'
            }, {
                xtype: 'combo',
                store: states,
                displayField: 'name',
                valueField: 'abbr'
            }]
        })
    ]
});

Here 是有效的 fiddle.

将样式应用于面板,然后每个组件都会根据面板的默认值 属性 获取 style:'float:left;',这会为每个项目设置对象中的属性。

如果宽度发生变化,面板将始终包裹组合,我更新了 fiddle 以向您展示您可以毫无问题地调整它的大小。