2012-02-10 111 views
0

當我在Sencha Touch應用程序中的視圖之間移動時,看到動畫(幻燈片),然後再次顯示原始視圖(我開始的視圖)。此時,如果我點擊應用程序中的任何位置,視圖將更改爲正確的新活動項目。Sencha Touch setActiveItem顯示動畫,然後需要點擊以顯示

我正在使用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: ' 
    } 
    ] 
}); 

回答

1

的代碼在兩個部分看起來都很好。當我遇到phonegap和sencha觸摸問題時,我通常會發現有一個javascript錯誤發生,或者index.html文件的body標籤之間存在額外的html標記。第一件事是在Chrome或Safari瀏覽器中打開控制檯,並檢查javascript控制檯以確定它是否是JavaScript錯誤。如果你不能運行它,我會建議Wienre應用程序,它會給你一個控制檯,並被寫入調試phonegap應用程序(wienre也將允許您查看html標記,以確保它是正確的)

+0

謝謝!我正在查看它。我會讓你知道我找到了什麼。 – kevinstueber 2012-02-10 19:30:16

+0

沒有運氣,與Weinre檢查錯誤,通過JSLint運行所有JS文件,並通過HTMLlint運行我的index.html。沒有領導......任何其他想法? – kevinstueber 2012-02-10 22:36:36

1

問題必須在視圖文件中的某處。你所顯示的代碼是正確的。

+0

謝謝,我更新了問題以包含示例視圖... – kevinstueber 2012-02-11 14:00:17

0

那麼,爲什麼它的價值,重建應用程序後,我發現這個問題。這是一些自定義的CSS,搞砸了應用程序。特別是在某些組件上設置的寬度。希望這會爲別人節省一些時間和心痛。

謝謝Darren和Ilija的幫助!