在Sencha Touch 2中,我在控制器中使用此代码段:
this.control({
'#test_button': {
tap: function () {
var root_c = Ext.getCmp("main_container");
root_c.setActiveItem(
1, {type:'slide', direction: 'left'}
);
}
}
});
它很好用,但它只切换“默认方式”,而不是“滑动方式”。任何人都可以帮忙,为什么?
提前致谢, [R
答案 0 :(得分:2)
在Sencha Touch 2中,您需要的正确方法是 animateActiveItem
答案 1 :(得分:2)
this.control({
'#test_button': {
tap: function () {
var root_c = Ext.getCmp("main_container");
root_c.animateActiveItem(1, {type:'slide', direction: 'left'});
}
}
});
在sencha touch 2中,setActiveItem只有一个参数:
setActiveItem( Object/Number activeItem )
所以你必须使用:
animateActiveItem( Object/Number activeItem, Object/Ext.fx.layout.Card animation )
更多信息:http://docs.sencha.com/touch/2-0/#!/api/Ext.Container-method-animateActiveItem
答案 2 :(得分:2)
正如其他人所说,使用animateActiveItem。或者,您可以保留(单个参数)setActiveItem,并在显示的特定视图上设置showAnimation和hidAnimation。
话虽如此,如果您展示的项目嵌套了大量的来回,这在我的经验中存在问题。
<强>更新强> 我只是发现st2.0.1中存在一个明显的时间错误,如果你使用show / hideAnimation,你实际上无法销毁具有属性集的对象。咬我一点相关:http://www.sencha.com/forum/showthread.php?192847-Animating-panels-throws-Cannot-call-method-getPageBox-of-null
答案 3 :(得分:0)
如果您使用的是Sencha Touch 2.0.0
和新版本,请使用
yourpanel.animateActiveItem(0, { type: 'slide', direction: 'right' })
请仔细阅读此链接以获取更多信息。