Sencha Touch 2 - setActiveItem动画不起作用

时间:2012-04-01 11:42:23

标签: extjs sencha-touch-2

在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

4 个答案:

答案 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' })

请仔细阅读此链接以获取更多信息。

http://docs.sencha.com/touch/2.3.1/#!/api/Ext.Container