钛:将内容添加到滚动视图中

时间:2012-10-09 00:30:03

标签: titanium

所以我有这段代码:

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;
}

问题是,这个令人讨厌的东西将所有按钮叠加到一个......也就是说,它不是&#34;按下&#34;行。来自这里的钛教程:

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

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

1 个答案:

答案 0 :(得分: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,
    });
...

一切都很顺利。