0

だから私がやろうとしているのは、sqlite dbからデータをロードし、それを使用してwhile... isValidRowボタンのセットを動的に作成し、静的topおよびleft(または右)を設定することです。私が見つけたのは、すべてのボタンの親を acreateView()に設定するlayouthorizontal、素敵なグリッドが作成されるということです。

var brandView = Ti.UI.createView({  
    width: 100,
    height: 100,
    left: 0,
    layout: 'horizontal',
    textAlign: 'center'
});


while(rows.isValidRow()) {
     var dynamicButton = Ti.UI.createButton({
        width: 10,
        height: 10,
        top: 10,
        left: 10,
        title: rows.fieldByName('name');
    });
    view.add(dynamicButton);

    rows.next();
}

私が抱えている問題は、一度に画面に表示できるよりも多くのボタンが表示されることがあるため、ボタンが表示画面の下に広がることです。そのため、ビューを に変更し、(または垂直) に設定しcreateScrollViewたまま、ボタンを横に並べて配置し、画面を超えて横に伸ばします (グリッドの配置を失います)。私の質問は、ビューをスクロール可能にし、ボタンをグリッド スタイルで表示するにはどうすればよいですか?layouthorizontal

4

2 に答える 2

2

これを試して。これはあなたにとって役立つと思います。

var brandView = Ti.UI.createScrollView({  
    height      : Ti.UI.FILL,
    width       : Ti.UI.FILL,
    contentHeight : "auto",
    backgroundColor : "transparent",
    layout      : "horizontal",
    horizontalBounce :false,
});


while(rows.isValidRow()) {
     var dynamicButton = Ti.UI.createButton({
        width: 10,
        height: 10,
        top: 10,
        left: 10,
        title: rows.fieldByName('name');
    });
    brandView.add(dynamicButton);

    rows.next();
}
于 2013-01-19T14:04:26.087 に答える
0

ブランド ビューを scrollView にネストします。それ以外の場合は、水平方向にスクロールします。また、ボタンを画面の中央に配置する場合は、プロパティを設定しないでください。leftプロパティを設定するだけtopです。また、 にtextAlignは無効ですTitanium.UI.View

画面全体に表示し、グリッドにボタンを追加し、中央に配置し、スクロール ビューにネストする例を次に示します。

var scroller =  Ti.UI.createScrollView({
    height: Ti.UI.FILL,
    width: Ti.UI.FILL,
});
var brandView = Ti.UI.createView({  
    width: Ti.UI.FILL,
    height: Ti.UI.FILL,
    top: 0,
    layout: 'horizontal',
    textAlign: 'center'
});


while(rows.isValidRow()) {
     var dynamicButton = Ti.UI.createButton({
        width: 10,
        height: 10,
        top: 10,
        left: 10,
        title: rows.fieldByName('name');
    });
    view.add(dynamicButton);

    rows.next();
}

scroller.add(brandView);
于 2013-01-19T14:28:14.983 に答える