gpt4 book ai didi

javascript - Titanium Javascript - 代码适用于 iPhone,但不适用于 Android?

转载 作者:行者123 更新时间:2023-11-28 19:21:28 25 4
gpt4 key购买 nike

我目前正在制作一个模块,它可以为您完成 ScrollView 的艰苦工作。当我在 iPhone 模拟器上运行这段代码时,它是完美的——没有错误。在 android 模拟器上,我只看到一个空白屏幕?

为什么我只看到一个空白屏幕,我该如何解决?这是我的代码:

window = Ti.UI.createWindow({
backgroundColor : 'white'
});

function SuperScrollView(window) {
this.scrollview = Ti.UI.createScrollView({
showVerticalScrollIndicator : true,
height : window.height,
width : window.width,
contentHeight : 'auto'
});
this.view = Ti.UI.createView({
height : 0,
width : window.width
});
this.addElement = function(element) {
var height = this.view.height;
var elementHeight = element.height;
element.top = height;
this.view.add(element);
this.view.height += elementHeight;
height = this.view.height;
this.scrollview.contentHeight = height;
alert(height);
}
this.scrollview.add(this.view);
window.add(this.scrollview);
}

var scrollview = new SuperScrollView(window);
scrollview.addElement(Ti.UI.createView({
width : 200,
height : 500,
backgroundColor : 'blue'
}));

window.open();

最佳答案

问题是您依赖于 window.width 和 window.height,它们在 Android 上的计算结果为 0(而在 iOS 上它们工作正常)。这会导致您的 View 没有任何大小。最好使用 Ti.Platform.displayCaps.platformWidth 和 Ti.Platform.displayCaps.platformHeight 来获取屏幕的尺寸。您需要注意,这在每个平台上都会有所不同,并相应地调整您的 View 大小,但您总会遇到这个问题。

我稍微修改了您的代码,以便您可以在两个平台上看到它的运行情况。

window = Ti.UI.createWindow({
backgroundColor : 'white'
});

function SuperScrollView(window) {
this.scrollview = Ti.UI.createScrollView({
showVerticalScrollIndicator : true,
height : Ti.Platform.displayCaps.platformHeight,
width : Ti.Platform.displayCaps.platformWidth,
contentHeight : 'auto'
});
this.view = Ti.UI.createView({
height : 0,
width : Ti.Platform.displayCaps.platformWidth
});
this.addElement = function(element) {
var height = this.view.height;
var elementHeight = element.height;
element.top = height;
this.view.add(element);
this.view.height += elementHeight;
height = this.view.height;
this.scrollview.contentHeight = height;
alert(height);
}
this.scrollview.add(this.view);
window.add(this.scrollview);
}

var scrollview = new SuperScrollView(window);
scrollview.addElement(Ti.UI.createView({
width : 200,
height : Ti.Platform.displayCaps.platformHeight + 500,
backgroundColor : 'blue'
}));

window.open();

编辑:您可以做的另一件事是等到窗口打开,然后在评估宽度和高度后将 ScrollView 添加到其中:

window = Ti.UI.createWindow({
backgroundColor : 'white'
});

function SuperScrollView(window) {
this.scrollview = Ti.UI.createScrollView({
showVerticalScrollIndicator : true,
height : window.height,
width : window.width,
contentHeight : 'auto'
});
this.view = Ti.UI.createView({
height : 0,
width : window.width
});
this.addElement = function(element) {
var height = this.view.height;
var elementHeight = element.height;
element.top = height;
this.view.add(element);
this.view.height += elementHeight;
height = this.view.height;
this.scrollview.contentHeight = height;
alert(height);
}
this.scrollview.add(this.view);
window.add(this.scrollview);
}


window.open();

window.addEventListener('open', function(){
var scrollview = new SuperScrollView(window);
scrollview.addElement(Ti.UI.createView({
width : 200,
height : window.height + 500,
backgroundColor : 'blue'
}));

});

关于javascript - Titanium Javascript - 代码适用于 iPhone,但不适用于 Android?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8644436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com