我创造了这样的手风琴:
layout:'accordion',
layoutConfig:{
animate:true
}
然后我通过add()方法添加元素,然后使用doLayout()重新渲染它并设置activeItem:
navigation_panel.getComponent(1).expand(false);
我使用false
参数调用expand()方法,但它仍然会为转换设置动画,因此需要从主布局设置并忽略我发送到expand()的设置。如何解决这个问题?
答案 0 :(得分:5)
在相应面板中展开项目时会发生两件事: 1.旧的活动项目已折叠 2.新的活动项目已扩展
旧活动项目的折叠由手风琴布局处理,并在“beforeexpand”事件期间发生。看一下源代码,我看到手风琴布局调用了 var ai = this.activeItem; ai.collapse(this.animate)
因此,旧活动项目崩溃的动画完全由手风琴布局的“animate”属性决定。出于这些目的,将忽略您传入的动画标记。我猜测如果你仔细观察,你会发现你的崩溃是动画的,而扩展则没有。
因为animate标志是显式传递的,所以我没有看到任何标准的,支持的方法来覆盖单个操作的这种行为。
在3.0+中,您可以在渲染之前或之后调用记录的方法getLayout()来获取Container的布局对象的引用。您可以在操作面板时将布局对象的animate属性设置为false,然后在完成后将其设置为false。这没有记录可行,但可能基于来源。