Phonegap android app:初始运行表现得很奇怪

时间:2011-08-01 18:31:54

标签: android cordova

实际上,我正在困扰手机屏幕应用的屏幕尺寸问题。 我找到了这个网站的解决方案(http://ryangillespie.com/phonegap.php)。 通过使用javascript和css3的功能,它可以工作。

代码如下:

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()

屏幕尺寸正常。

如何解决? 这是我的第一篇文章。如果我错过了一些信息,我会澄清。

1 个答案:

答案 0 :(得分:0)

该方法可能仅在应用程序最初创建视图时调用,具体取决于应用程序的工作方式,可能会调用“onCreate”或“onSurfaceCreated”方法来正确设置更改。然后,当您再次启动应用程序时,表面已经创建,因此应用程序不会尝试重新创建它,并且某种程度上它不是正确的状态。如果您确定每次都需要重新加载设置,请让应用程序在“onSurfaceModified”或“onResume”或其他任何内容中调用该重新加载方法,或尝试弄清楚视图在运行之间如何被修改。