SenchaTouch2:如何确定是否因实际显示视图而触发了show事件

时间:2012-06-14 14:56:05

标签: javascript sencha-touch-2

在sencha touch 2 Ext.navigation.View中,可以push()pop()其他视图进出。那些其他视图会触发hideshow之类的事件。可悲的是,这些事件在推送时按此顺序触发:(注意粗体)

  1. 初始化
  2. 隐藏
  3. 激活
  4. 显示
  5. 弹出时

    和这样:

    1. 停用
    2. 隐藏
    3. 显示
    4. 除去
    5. 破坏
    6. 所以依赖showhide事件并不是最好的主意,因为两种情况都会被解雇。
      我认为这是一个错误,类似的东西已经discussed。尽管如此,我在使用的版本(ST 2.0.1.1)中仍然存在此行为,并且根据论坛中对@rdougan的解释:

        

      这背后的原因是当从卡中移除物品时   布局,它实际上可能会显示在其他地方 - 或许它是   变为可浮动的。所以我们必须将项目还原为它   原始的可见状态。

      也不会改变。所以我试图找出哪个事件真的正在发生。

1 个答案:

答案 0 :(得分:1)

这个问题有一个解决方案。假设有人在视图中侦听事件而不是控制器,您可以使用此litte片段:

Ext.Array.contains(this.up('navigationview').getActiveItem().getXTypes().split('/'), this.xtype)

检查您的视图是否实际显示(true)或隐藏(false)。当然,您必须在用于使其工作的视图上定义自己的xtype配置属性。就我而言,它是Ext.Panel