Extjs手风琴布局

时间:2011-01-04 06:27:13

标签: extjs accordion

Accordion Layout是叠加的面板布局,因为只有一个面板可见,但我想在时间显示两个面板,所以我们可以用手风琴面板吗?

4 个答案:

答案 0 :(得分:4)

您无法扩展现有的Accordion Layout类来实现您的目标。如果您浏览源代码,您会注意到Accordion布局是通过扩展FitLayout创建的。现在,我引用FitLayout在文档中解释的属性:

  

这是布局的基类   包含一个项目   自动扩展以填充   布局的容器。

文件进一步说:

  

如果容器有多个面板,   只会显示第一个。

现在,提问者要求的是同时显示两个面板。对于从FitLayout扩展的任何布局,这是不可能的。

其他问题:

提问者计划实施的组件存在一些设计问题;

  1. 当前显示的面板会占用多少空间?
  2. 手风琴行为如何运作?当用户尝试访问第三个面板时..当前打开的面板的行为如何。
  3. 可能的解决方案:

    现在,一种可能的解决方案是使用vbox布局扩展Panel并在其中包含所有面板。

答案 1 :(得分:2)

使用Accordion布局的multi属性可以在Ext js 4.1中使用。

检查docs此处..

答案 2 :(得分:0)

我确信你不能用现有的AccordionLayout来做。

您可以编写自己的布局类来执行此操作。这并不难,AccordionLayout.js只有几页长,大部分都是评论。

答案 3 :(得分:0)

手风琴布局不是为此而设计的。根据您的要求选择相应的布局就像尝试在矩形中拟合球体一样。

但是,如果你把枪放在我头上,我会很快考虑以下选项。

  1. 扩展现有的Accordion类( Discard。由于基础不是为此而设计的
  2. 写下你自己的魔术手风琴(除了实施,你必须回答Abdel Olakara提到的问题,你的自己
  3. 通过叠加两个或更多个手风琴来模仿所需的行为(嗯,不是一个好主意,但枪在我头上)。