2011-08-01 33 views
1

實際上,我很煩擾phonegap應用程序的屏幕大小問題。 我找到了本網站的解決方案(http://ryangillespie.com/phonegap.php)。 通過使用JavaScript和css3的功能,它的工作原理。Phonegap android應用程序:最初的運行表現奇怪

的代碼如下:

var designWidth = 480; // zoom to fit this ratio 
var designHeight = 762; // not 800 b/c top bar is 38 pixels tall 
var scaleChange = 1; // % change in scale from above #s 

function zoomScreen() { 
    var docWidth = window.outerWidth; 
    var docHeight = window.outerHeight; 

    if (docWidth != designWidth) { 
     var scaleX = docWidth/designWidth; 
     var scaleY = docHeight/designHeight; 
     if (scaleX < scaleY) { 
      $('body').css('zoom', scaleX); 
      scaleChange = scaleX; 
     } else { 
      $('body').css('zoom', scaleY); 
      scaleChange = scaleY; 
     } 
    } 
} 

但是,問題是:它只能在初始運行正常運行。當我關閉應用程序並重新啓動時,屏幕尺寸表現錯誤。

還有一個更奇怪的行爲。在我嘗試重新加載頁面之後

window.location.reload() 

屏幕尺寸表現正確。

如何解決? 這是我的第一篇文章。如果我錯過了一些信息,我會澄清。

回答

0

,當應用程序最初創建視圖,這取決於你如何安裝了該應用的工作方法可能只被調用,有可能是一個「的onCreate」或「onSurfaceCreated」,這是獲得所謂的正確設置變化的方法。然後,當您再次啓動應用程序時,表面已經創建好了,因此該應用程序不會嘗試重新創建它,並且不知何故它不處於正確的狀態。如果您確定每次都需要重新加載設置,請讓應用程序在「onSurfaceModified」或「onResume」或其他任何地方調用該重新加載方法,或嘗試找出視圖在運行之間如何進行修改。

+0

我試圖調用「onCreate」狀態的重載功能,並且它的行爲正常。謝謝。 – Alan

相關問題