无法在钛金属的tableViewRow中显示按钮

时间:2013-07-17 13:50:29

标签: cross-platform titanium

我是钛开发的新手。我正在使用Titanium开发ToDo应用程序用于学习目的。我能够显示数据库中的数据并成功生成tableViewRow但我陷入了一个阶段,我无法在每一行显示按钮。我为它做了R& D但是我无法得到解决方案。我在tableViewRow的每一行显示按钮的代码,它显示每行中数据库的所有记录但不显示buttons.it在每行显示[object TableViewRow]而不是按钮。所以请帮我解决问题

![Titanium.UI.setBackgroundColor('black');

var win = Titanium.UI.createWindow
({  
    title:'Tab 1',
    backgroundColor:'#fff'


});

var db = Titanium.Database.install('/mydata/ToDoDB', 'ToDoDB');
    var rows = db.execute('SELECT * FROM task');
    var data1=[];

    while(rows.isValidRow())
        {

         var rowview=Titanium.UI.createTableViewRow();

         var btn=Titanium.UI.createButton
         ({
                right:'20dp',
                width:'60dp',
                height:'40dp',
                title:'Show'

         });

         rowview.add(btn);

         var tt=rows.fieldByName('title');
         var cc=rows.fieldByName('content');
         //data1.push({title:rows.fieldByName('title')},{title:rows.fieldByName('content')},{title:rowview});
         data1.push({title:tt+cc+rowview});

         rows.next();
         //rowview.add(btn);
        };
        rows.close();
    var yourTable = Ti.UI.createTableView
    ({
        width : Ti.UI.FILL,
        height : Ti.UI.FILL,
        data: data1
    });

    db.close();
    win.add(yourTable);

    win.open();

2 个答案:

答案 0 :(得分:0)

一旦你开始包含按钮等,你正在寻找的是一个自定义行。

这是一个旧的,但仍然提供信息的例子

http://cssgallery.info/custom-row-for-tableview-in-appcelerator-titanium/

基本思想是创建视图,将其放在行中,然后将其他行UI对象添加到该视图中

答案 1 :(得分:0)

尝试以下

var rowview = Titanium.UI.createTableViewRow();

var tt=rows.fieldByName('title');
var cc=rows.fieldByName('content');

var btn=Titanium.UI.createButton({
    right:'20dp',
    width:'60dp',
    height:'40dp',
    title:'Show'
});

var labeltt=Titanium.UI.createLabel({
    left:'20dp',
    width:'60dp',
    height:'40dp',
    text:tt
});

var labelcc=Titanium.UI.createLabel({
    left:'80dp',
    width:'60dp',
    height:'40dp',
    text:cc
});
rowview.add(labeltt);
rowview.add(labelcc);
rowview.add(btn);

data1.push(rowview);

我没有尝试过这段代码,所以应该有一些对齐问题。我希望这会对你有所帮助