【问题标题】:Adding panels with fixed 2 rows and multiple columns dynamically动态添加具有固定 2 行和多列的面板
【发布时间】:2020-04-16 11:57:30
【问题描述】:

我想用这种结构动态添加一个面板。它应该在一列中增长,如果我删除中间的面板,则下一个面板应该移到前面。

Panel1      panel3      panel5 ....

Panel2      panel4      panel6 ....

我尝试了列布局,但它按列增长。我试图用 vertical: true

if (itemLength % 2 === 1 && itemLength !== 0) {
    container.setLayout({
        vertical : true
    })
} else {
    container.setLayout({
        vertical : false
    })
}

似乎没有任何效果。

【问题讨论】:

    标签: javascript css extjs alignment


    【解决方案1】:

    您可以将hbox 布局用于要在其中水平添加面板的容器和vbox 用于垂直添加。

    {
       xtype: 'panel',
       layout: {
           type: 'hbox',
           align: 'stretch'
       }
    },
    

    并提供 flex 以在添加或删除时相应地调整高度和宽度。

    flex: 1;
    

    Here 你可以找到适合你的场景的小提琴。当您单击添加按钮时,将在您的容器中水平添加一个面板,该面板具有一个删除按钮,宽度将相应调整,删除时也会注意。

    【讨论】:

    • 感谢您的回复。这工作正常。但我想将 panel2 放在 panel1 的下方,而 panel3 则动态地放在 panel1 的右侧。确切地说,它应该与列布局相反。它应该只有两行并且按行而不是按列增长。
    • 这就是我所说的,对于垂直对齐,您必须使用 vbox 布局。因此您可以根据需要编写逻辑。
    猜你喜欢
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 2012-06-06
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    相关资源
    最近更新 更多