Sencha Touch setActiveItem показывает анимацию, затем требуется щелчок, чтобы показать - PullRequest
0 голосов
/ 10 февраля 2012

Когда я перемещаюсь между видами в приложении Sencha Touch, я вижу анимацию (слайд), затем снова отображается исходный вид (тот, с которого я начал). В этот момент, если я щелкну где-нибудь в приложении, представление изменится на правильный новый активный элемент.

Я использую Sencha Touch, XCode 4, iOS 5 SDK и PhoneGap 1.3.0.

Заранее спасибо!

вот код основного окна просмотра:

plantanalyzer.views.Viewport = Ext.extend(Ext.Panel, {
fullscreen: true,
layout: 'card',
cardSwitchAnimation: 'slide',
initComponent: function() {
Ext.apply(plantanalyzer.views, {
          login: new plantanalyzer.views.Login(),
          plantDetail: new plantanalyzer.views.PlantDetail(),
          buildingList: new plantanalyzer.views.BuildingList()
          });
Ext.apply(this, {
          items: [
                  plantanalyzer.views.login,
                  plantanalyzer.views.plantDetail,
                  plantanalyzer.views.buildingList
                  ]
          });


   plantanalyzer.views.Viewport.superclass.initComponent.apply(this, arguments);
    }
});

и для viewController:

plantanalyzer.controllers.viewController = new Ext.Controller({
index: function(options) {
    plantanalyzer.views.viewport.setActiveItem(plantanalyzer.views.plantDetail, options.animation);
},
show: function(options) {
    plantanalyzer.views.viewport.setActiveItem(plantanalyzer.views.buildingList, 

options.animation);
    }
});

и это код для одного из представлений:

plantanalyzer.views.PlantDetail = Ext.extend(Ext.Panel, {
width: 320,
height: 480,
items: [
    {
        xtype: 'panel',
        html: '<img src="images/logo.jpg"/>',
        tpl: '{name}',
        cls: 'plantToolbar'
    },
    {
        xtype: 'button',
        name : 'buildingSelect',
        text: 'Select Building',
        cls: 'standardButton',
        listeners: {
            'tap': function () {
                'use strict';
                Ext.dispatch({
                    controller: plantanalyzer.controllers.viewController,
                    action: 'show'
                });
            }
        }
    },
    {
        xType: 'panel',
        cls: 'infoBoxes',
        html: 'Efficiency (kw/ton)<br><canvas id="eff"></canvas>'
    },
    {
        xType: 'panel',
        cls: 'infoBoxes',
        name: 'totalTons',
        html: 'Total Plant Tons: '
    },
    {
        xType: 'panel',
        cls: 'infoBoxes',
        name: 'totalCost',
        html: 'Real-time Plant Cost: '
    },
    {
        xType: 'panel',
        name: 'uodateTime',
        cls: 'lastUpdate',
        html: 'Last Update: '
    }
    ]
});

Ответы [ 3 ]

1 голос
/ 11 февраля 2012

Проблема должна быть где-то в просмотре файлов. Код, который вы показали, правильный.

1 голос
/ 10 февраля 2012

Код выглядит хорошо в обоих разделах.Когда у меня возникли проблемы с PhoneGap и Sencha Touch, я обычно обнаруживал, что произошла ошибка javascript или была добавлена ​​дополнительная разметка html между тегом body файла index.html.Первым делом нужно открыть консоль в chrome или safari и проверить консоль javascript, чтобы определить, является ли она ошибкой javascript.Если вы не можете запустить его в них, я бы предложил приложение Wienre, которое предоставит вам консоль и предназначено для отладки приложений phonegap (wienre также позволит вам просматривать разметку html, чтобы убедиться, что она правильная)

0 голосов
/ 15 февраля 2012

Ну, для чего это стоит, после перестройки приложения я обнаружил проблему. Это был какой-то нестандартный CSS, который испортил приложение. В частности, ширина, которая была установлена ​​для некоторых компонентов. Надеюсь, это сэкономит кому-то еще время и душевную боль.

Спасибо, Даррен и Илья за вашу помощь!

...