如何在滚动视图中添加表格视图?

时间:2014-04-23 11:00:44

标签: android titanium scrollview tableview

我在滚动视图中添加了一个表视图,它在iOS的情况下顺利运行,但在Android的情况下,表视图不滚动。

我已经描述了下面的代码来描述我的问题.. 建议任何有助于解决我的问题的答案。

var rows = [];

var win = Ti.UI.createWindow({
    backgroundColor:'white'
});

var scrollableView = Ti.UI.createScrollView({
    top : 0,
    contentWidth : '100%',
    contentHeight : 'auto'
});

var fruit = Ti.UI.createView({
    top : 40,
    width : '70%',
    height : 20,
    left : 10,
    backgroundColor:'#000'
});
var fruitLabel = Ti.UI.createLabel({
    text : "Fruit list",
    font:{
        fontSize : 15,
        fontWeight : 'bold'
    },
    color : 'red'
});
fruit.add(fruitLabel);
var fruitTableView = Titanium.UI.createTableView({
    top : 70,
    width : 200,
    height : 150,
    left : 80,
    right : 20,
    separatorColor : 'transparent'
});
rows = [];
for(var i=0; i<20; i++){
    rows.push(Titanium.UI.createTableViewRow({
        title:'fruit ' + String(i),
        color : '#000'
    }));
};
fruitTableView.setData(rows);

var veg = Ti.UI.createView({
    top : 250,
    width : '70%',
    height : 20,
    left : 10,
    backgroundColor:'#82C6E8'
});
var vegLabel = Ti.UI.createLabel({
    text : "Veg list",
    font:{
        fontSize : 15,
        fontWeight : 'bold'
    },
    color : 'red'
});
veg.add(vegLabel);
var vegTableView = Titanium.UI.createTableView({
    top : 280,
    width : 200,
    height : 150,
    left : 80,
    right : 20,
});
rows = [];
for(var i=0; i<20; i++){
    rows.push(Titanium.UI.createTableViewRow({
        title:'veg ' + String(i),
        color : '#000'
    }));
};
vegTableView.setData(rows);


var grains = Ti.UI.createView({
    top : 460,
    width : '70%',
    height : 20,
    left : 10,
    backgroundColor:'pink'
});
var grainLabel = Ti.UI.createLabel({
    text : "Grains list",
    font:{
        fontSize : 15,
        fontWeight : 'bold'
    },
    color : 'red'
});
grains.add(grainLabel);
var grainsTableView = Titanium.UI.createTableView({
    top : 490,
    width : 200,
    height : 120,
    left : 80,
    right : 20,
});
rows = [];
for(var i=0; i<50; i++){
    rows.push(Titanium.UI.createTableViewRow({
        title:'grain ' + String(i),
        color : '#000'
    }));
};
grainsTableView.setData(rows);

scrollableView.add(fruit);
scrollableView.add(fruitTableView);
scrollableView.add(veg);
scrollableView.add(vegTableView);
scrollableView.add(grains);
scrollableView.add(grainsTableView);

win.add(scrollableView);
win.open();

4 个答案:

答案 0 :(得分:6)

谢谢你的回复, 我找到了在@Surajkochale的帮助下实现它的正确方法。

如果我在代码中添加这些行并且它运行良好,这是我的问题的解决方案..

fruitTableView.addEventListener('touchstart', function(){
    scrollableView.canCancelEvents = false;
});
fruitTableView.addEventListener('touchend', function(){
    scrollableView.canCancelEvents = true;
});
fruitTableView.addEventListener('touchcancel', function(){
    scrollableView.canCancelEvents = true;
});


vegTableView.addEventListener('touchstart', function(){
    scrollableView.canCancelEvents = false;
});
vegTableView.addEventListener('touchend', function(){
    scrollableView.canCancelEvents = true;
});
vegTableView.addEventListener('touchcancel', function(){
    scrollableView.canCancelEvents = true;
});


grainsTableView.addEventListener('touchstart', function(){
    scrollableView.canCancelEvents = false;
});
grainsTableView.addEventListener('touchend', function(){
    scrollableView.canCancelEvents = true;
});
grainsTableView.addEventListener('touchcancel', function(){
    scrollableView.canCancelEvents = true;
});

答案 1 :(得分:0)

您需要在视图中添加tableview ...

fruit.add(fruitTableView);
scrollableView.add(fruit);

veg.add(vegTableView);
scrollableView.add(veg);

grains.add(grainsTableView);
scrollableView.add(grains);

答案 2 :(得分:0)

你可以查看contentHeight : Ti.UI.SIZE,它对我有用

答案 3 :(得分:0)

试试这个

var tableView = Titanium.UI.createTableView({
    bubbleParent:false,
});

不顺利,但有效。