尝试使用向下钻取导航在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平台的正确语法。
有人帮忙吗?
感谢。
答案 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
};
}