Sencha Touch - setactiveitem на верхний уровень во вложенном списке - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть вкладка с элементами вложенных списков. Каждый вложенный список проходит несколько уровней. Если я разверну один из вложенных списков, то щелкну по другому элементу на панели вкладок, а затем вернусь к нему, вложенный список по-прежнему развернут вниз, вместо обновления до верхнего уровня вложенного списка.

Как получить, чтобы nestedlist отображал верхний уровень вместо развернутого нижнего уровня каждый раз, когда я к нему возвращаюсь?

Дополнительная информация ОК, я частично там. Вот код, который я сейчас имею:

     var tabBar = new Ext.TabPanel({
        fullscreen: true,
        id : 'footer',
        cardSwitchAnimation:false,

          listeners: {

                  cardswitch: {
                           fn: function() { 
                                  Ext.getCmp('footer').getActiveItem().setActiveItem(0);
                             }
                        }
          },

        tabBar: {
           dock: 'bottom'
        },
        items: [/* some nestedlist components */]
     });

Таким образом, последняя проблема заключается в том, что каждый раз, когда я переключаю карточку, я вижу анимацию «развертки / сдвига» вложенного списка, возвращающегося назад или углубляющегося до элемента верхнего уровня. Как заставить его просто показывать элемент верхнего уровня без анимации детализации / сдвига назад? Я хочу сохранить слайд вперед и развернуть анимацию, когда пользователь свернет вложенный список.

Ответы [ 2 ]

1 голос
/ 17 марта 2014

В марте 2014 года с версией 2.3.1 у меня возникла вышеуказанная проблема с объектом Ext.dataview.NestedList. Предложенный подход использования метода «отменить выбор» не сработал для меня - возможно, из-за двух лет, прошедших с момента первоначального вопроса.

Для решения проблемы я использовал следующее:

nestedList.goToNode( nestedList.getStore().getRoot() );
1 голос
/ 29 февраля 2012

Можно попытаться установить для параметра cardSwitchAnimation значение false в методе setActiveItem

[ОБНОВЛЕНИЕ] Отменить выбор элемента

Добавить прослушиватель событий для события касания элемента ввложенный список

nestedList.on("itemtap", function(nestedlist, index, item, e){setTimeout(function(){nestedlist(index);},500);}, this);

[ОБНОВЛЕНИЕ] От Джона

По какой-то причине ваш код ничего не сделал для меня.Но этот работал:

var nestedList = new Ext.NestedList({
      store: store,
      listeners: {
        itemtap: function(dv, ix, item, e) {
            // Clear the selection soon
            setTimeout(function(){dv.deselect(ix);},500);
        }
    }
});
...