Sencha Touch 2如何在嵌套列表中检测顶级

时间:2012-08-22 22:48:04

标签: sencha-touch-2

我想创建一个事件监听器来检测我的嵌套列表何时位于顶层,然后隐藏页面上的组件。例如:

onNestedlistActiveItemChange: function(container, value, oldValue, options) {
     if (this.getMyNestedList().atLevel(0)) <-- seudo code, does not work
           {
           Ext.getCmp('myButton').hide();
           }
    }

提前感谢您的帮助

2 个答案:

答案 0 :(得分:2)

当隐藏默认后退按钮时,嵌套列表的_backButton._hidden属性将返回true,当显示按钮时,false将返回onMynestedlistBack: function(nestedlist, node, lastActiveList, detailCardActive, options){ if(nestedlist._backButton._hidden) { Ext.ComponentQuery.query('#myButton')[0].hide(); } } 。仅当嵌套列表位于顶层时,才会隐藏该按钮。

诀窍是使用嵌套列表的“后退”事件,该事件在发生后退事件后返回工具栏的状态:

myButton

也就是说,如果嵌套列表的后退按钮被隐藏,则列表位于顶层,因此隐藏{{1}}。

当然有更严格的方法,但大多数方法都会涉及覆盖工具栏的默认按钮处理。

答案 1 :(得分:0)

您可以通过检查列表的索引

来获取列表级别
var idx = nestedlist.getInnerItems().indexOf(list);
if (idx === 0) { 
    // top level...
}

<强> [UPDATE]

您还可以检查记录的深度级别

var depth = record.getData().depth;
if (depth === 1) { 
    // top level...
}