ExtJS:禁用手风琴动画

时间:2010-03-05 22:55:20

标签: extjs

我创造了这样的手风琴:

layout:'accordion',
layoutConfig:{
            animate:true
}

然后我通过add()方法添加元素,然后使用doLayout()重新渲染它并设置activeItem:

navigation_panel.getComponent(1).expand(false);

我使用false参数调用expand()方法,但它仍然会为转换设置动画,因此需要从主布局设置并忽略我发送到expand()的设置。如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

在相应面板中展开项目时会发生两件事:   1.旧的活动项目已折叠   2.新的活动项目已扩展

旧活动项目的折叠由手风琴布局处理,并在“beforeexpand”事件期间发生。看一下源代码,我看到手风琴布局调用了     var ai = this.activeItem;     ai.collapse(this.animate)

因此,旧活动项目崩溃的动画完全由手风琴布局的“animate”属性决定。出于这些目的,将忽略您传入的动画标记。我猜测如果你仔细观察,你会发现你的崩溃是动画的,而扩展则没有。

因为animate标志是显式传递的,所以我没有看到任何标准的,支持的方法来覆盖单个操作的这种行为。

在3.0+中,您可以在渲染之前或之后调用记录的方法getLayout()来获取Container的布局对象的引用。您可以在操作面板时将布局对象的animate属性设置为false,然后在完成后将其设置为false。这没有记录可行,但可能基于来源。