Titanium Javascript运行时错误

时间:2014-10-23 00:26:26

标签: javascript android titanium

尝试使用向下钻取导航在Titanium中创建移动Android应用。

显然这部分代码存在问题:

    // create the main menu container   
    var main_menu = Ti.UI.createTableView({
    style:Titanium.Android.TableViewStyle.GROUPED,
    scrollable:true   
    });

错误是这样的:

[ERROR]:TiExceptionHandler :( main)[1,257] - 在app.js中:21,42 [错误]:TiExceptionHandler :(主要)[5,262] - 消息:未捕获的TypeError:无法读取属性' GROUPED'未定义的 [错误]:TiExceptionHandler :(主要)[4,266] - 来源:style:Titanium.Android.TableViewStyle.GROUPED, [错误]:V8异常:app.js发生异常:21:未捕获TypeError:无法读取属性' GROUPED'未定义的

正在使用基于此的代码:

    // create the main menu container   
    var main_menu = Ti.UI.createTableView({
    style:Titanium.UI.iPhone.TableViewStyle.GROUPED,
    scrollable:false   
    });

可以看出,我改变了" Titanium.UI.iPhone" to" Titanium.Android",它似乎不是Android平台的正确语法。

有人帮忙吗?

感谢。

1 个答案:

答案 0 :(得分:1)

如果您查看docs,则可以看到"样式"属性仅适用于iOS。

编辑: 对于Android,它本身似乎不是一个分组的tableview风格(这就是为什么该选项仅适用于iOS)。有一种观点认为,您应该只使用平台上可用的UI元素,而不是试图使您的跨平台应用程序在两个平台上看起来完全相同。另一个人会说也许你可以这样做(取自here):

var win = Titanium.UI.currentWindow;
win.barColor = "FB9D3B";
win.backgroundColor = '#AEBCAD';

var isAndroid = false;
if (Titanium.Platform.name == 'android') {
    isAndroid = true;
}

// create table view data object
var data = [
    {title:"Row 1", color:'black', font:{fontWeight:'bold'}, hasChild:true, url:'row1.js'},
    {title:"Row 2", color:'black', font:{fontWeight:'bold'}, hasChild:true, url:'row2.js'},
];

if(false == isAndroid) {
    // create table view
    var tableViewOptions = {
        data:data,
        style:Titanium.UI.iPhone.TableViewStyle.GROUPED,
        headerTitle:"Header for iOS",
        backgroundColor:'transparent',
        rowBackgroundColor:'white'
        };
}

if(true == isAndroid) {

    var tableHeader = Titanium.UI.createLabel({
        color:'#000',
        text:"Header for Android",
        font:{fontWeight:'bold'},
        top:20,
        left:30,
        width:300,
        height:20
    });

    win.add(tableHeader);

    var tableViewOptions = {
        data:data,
        backgroundColor:'white',
        rowBackgroundColor:'white',
        top:40,
        height:98,
        width:300,
        borderWidth:1,
        borderRadius:10
    };
}