1

所以我有这个代码:

var answerView = Ti.UI.createScrollView({ //var added
    top: Ti.Platform.displayCaps.platformHeight*0.55,
    left:Ti.Platform.displayCaps.platformWidth*0.1,
width: Ti.Platform.displayCaps.platformWidth*0.8,
backgroundImage: '/images/labelBackground.png',
borderRadius: 8,
height: Ti.Platform.displayCaps.platformHeight*0.5,
contentHeight:'auto',
    showHorizontalScrollIndicator:true,
    scrollType:'vertical',
});
for (var j = 0; j < question.answers.length; j++){
    var row = createRow(question.answers[j]);
answerView.add(row);
}

这个功能:

function createRow(answer) {
var row = Ti.UI.createView({
    width:'100%', 
    height: 'auto',
});
var answerButton = Ti.UI.createButton({
    top: '1%',
    left: '1%',
    title: answer.answer,
    value: answer.order,
    width:'98%',
    font : {fontSize:'12sp'},
});
row.add(answerButton);
return row;
}

问题是,该死的东西将所有按钮叠加成一个......也就是说,它不是“向下推”行。从这里的钛教程:

http://docs.appcelerator.com/titanium/2.1/index.html#!/api/Titanium.UI.ScrollView

我原以为这会起作用,但事实并非如此。我知道我可以用数字做一些魔术,并将每一行发送到它应该有的位置,但我想也许钛会足够聪明来做到这一点?我错过了什么吗?

4

1 回答 1

2

哦,耶稣。

在这种情况下,钛是愚蠢的 - 问题是我有

height: 'auto' 在每一行的定义中 - 即:

function createRow(answer) {
    var row = Ti.UI.createView({
        width:'100%', 
        height: 'auto',
    });
...

有趣的是,这使得每一行都非常大,可能与分配给该行的整个空间一样大。我不知道,我从来没有尝试过滚动它。因此,只需将行的高度值更改为正常的值 - 我总是将我的高度设置为显示高度。

我现在有

function createRow(answer) {
    var row = Ti.UI.createView({
        width:'100%', 
        height: Ti.Platform.displayCaps.platformHeight*0.1,
    });
...

一切都很好。

于 2012-10-09T03:17:44.557 回答