SenchaTouch2: Как определить, было ли запущено событие show, потому что представление действительно отображается

В сенсорном Сенча 2 Ext.navigation.Viewможно push() а также pop() другие взгляды внутри и снаружи. Эти другие виды пожара события, такие как hide а также showВо-первых, эти события запускаются в следующем порядке при нажатии: (обратите внимание на жирные)

  1. инициализировать
  2. скрывать
  3. активировать
  4. шоу

и вот так при совании:

  1. дезактивировать
  2. скрывать
  3. шоу
  4. Удалить
  5. уничтожить

Так что полагаясь либо на show или же hide Событие не лучшая идея, так как оба увольняются в обеих ситуациях.
Я считаю это ошибкой, и нечто подобное уже обсуждалось. Тем не менее, это поведение все еще присутствует в версии, которую я использую (ST 2.0.1.1) и в соответствии с объяснением @rdougan на форуме:

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

это также не изменится. Поэтому я пытался выяснить, какое событие действительно происходит.

1 ответ

Решение

Есть решение этой проблемы. Предполагая, что вы слушаете событие внутри представления, а не контроллер, вы можете использовать этот маленький фрагмент:

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

проверить, действительно ли отображается ваш вид (true) или скрытый (false). Конечно, вы должны определить свой собственный xtype Свойство config для представлений, которые вы используете для этой работы. В моем случае это Ext.Panel,

Другие вопросы по тегам