Titanium创建表视图替换现有视图

时间:2013-07-14 15:02:21

标签: titanium tableview

我有一个梦想......不,那不是它。 我有一个视图,所有工作正常,直到我添加createTableView。 当我这样做时,它会替换屏幕上出现的所有内容。 我如何同时获得mapview和tableview?

var self = Ti.UI.createView();

var mapview = Titanium.Map.createView({
    top:1,
    height:200,
    mapType: Titanium.Map.STANDARD_TYPE,
    region:{latitude:33.74511, longitude:-84.38993, latitudeDelta:0.5, longitudeDelta:0.5},
    animate:true,
    regionFit:true,
    userLocation:true
});

self.add(mapview);

var lbl = Ti.UI.createLabel({
    text:'Please select an item',
    height:'auto',
    width:'auto',
    color:'#000'
});
self.add(lbl);

self.addEventListener('itemSelected', function(e) {
    lbl.text = e.name+': $'+e.price;
});

detailData = [{title:"Foo",leftImage:"bar.png",hasChild:true}];


var table = Ti.UI.createTableView({
    data:detailData
});
// if i dont rem the below line all i get on screen is the table view
self.add(table);

1 个答案:

答案 0 :(得分:1)

TableView控件通常会占据整个屏幕,我会尝试将MapView添加到TableView的一行,however, this may not work on Android

// Create the table
var self = Ti.UI.createView();
var detailData = [{title:"Foo",leftImage:"bar.png",hasChild:true}];
var table = Ti.UI.createTableView({
    data : detailData
});
self.add(table);

// Create the mapview
var mapview = Titanium.Map.createView({
    top:1,
    height:200,
    mapType: Titanium.Map.STANDARD_TYPE,
    region:{latitude:33.74511, longitude:-84.38993, latitudeDelta:0.5, longitudeDelta:0.5},
    animate:true,
    regionFit:true,
    userLocation:true
});

// Insert a row in first index of the table that has the mapview in it
var row = Ti.UI.createTableViewRow();
row.add(mapview);
table.insertRowBefore(1, row);

修改

糟糕,更简单的方法是设置表格的高度,并使容器视图具有垂直布局:

// Create the container view
var self = Ti.UI.createView({
    layout : 'vertical'
});
// Add the mapview
var mapview = Titanium.Map.createView({
    height:200,
});
self.add(mapview);
// Add the table
var table = Ti.UI.createTableView({
    top : 0,
    data : detailData
});
self.add(table);