Sencha Touch 2 - анимация setActiveItem не работает - PullRequest
4 голосов
/ 01 апреля 2012

В 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 ]

2 голосов
/ 23 мая 2012
  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 голосов
/ 11 июля 2012

Как говорили другие, используйте 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

2 голосов
/ 04 апреля 2012

В Sencha Touch 2 правильный метод для вашей потребности: animateActiveItem

0 голосов
/ 08 января 2014

Если вы используете Sencha Touch 2.0.0 и новую версию, чем это,

yourpanel.animateActiveItem(0, { type: 'slide', direction: 'right' })

Пожалуйста, перейдите по этой ссылке для получения дополнительной информации.

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

...