1

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

  1. 初始化
  2. 隐藏
  3. 启用
  4. 节目

弹出时像这样:

  1. 停用
  2. 隐藏
  3. 节目
  4. 消除
  5. 破坏

因此,依赖任何一个showhide事件并不是最好的主意,因为在这两种情况下都会被解雇。
我认为这是一个错误,并且已经讨论过类似的事情。尽管如此,这种行为仍然存在于我使用的版本(ST 2.0.1.1)中,并且根据论坛中@rdougan 的解释:

这背后的原因是,当一个项目从卡片布局中移除时,它实际上可能会显示在其他地方 - 或者它可能正在变为可浮动的。所以我们必须将项目恢复到原来的可见状态。

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

4

1 回答 1

1

这个问题有一个解决方案。假设一个监听视图内的事件,而不是控制器,你可以使用这个小片段:

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

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

于 2012-06-14T14:56:05.297 回答