Sencha Touch - setactiveitem到嵌套列表的顶级

时间:2012-02-28 18:57:15

标签: sencha-touch

我有一个带有嵌套列表项的tabpanel。每个嵌套列表都有几个级别。如果我向下钻取其中一个嵌套列表,然后单击选项卡面板中的其他项目,然后单击返回它,嵌套列表仍然向下钻取,而不是刷新到嵌套列表的顶层。

每次返回时,如何让嵌套列表显示顶级而不是深层次?

其他信息 好的,我在那里。这是我现在的代码:

     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 */]
     });

所以最后的问题是每次我开卡时,我都会看到#34; drillup / slideback"嵌套列表的动画向后滑动或钻回到顶级项目。如何在没有此向上钻取/向后滑动动画的情况下显示顶级项目?我希望保留向前滑动并在用户向下钻取嵌套列表时向下钻取动画。

2 个答案:

答案 0 :(得分:1)

您可以尝试在setActiveItem方法中将cardSwitchAnimation参数设置为false

[更新]取消选择项目

为嵌套列表中的项目点击事件添加事件侦听器

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

[更新]来自John

出于某种原因,您的代码对我没有任何作用。但是这个有用了:

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

答案 1 :(得分:1)

2014年3月,在版本2.3.1中,我遇到了Ext.dataview.NestedList对象的上述问题。使用"取消选择"的建议方法方法对我不起作用 - 可能是因为自原始问题以来已经过去了两年。

要解决问题,我使用了以下内容:

nestedList.goToNode( nestedList.getStore().getRoot() );