我正在尝试使用TabGroup,然后我想从另一个js文件使用函数setActiveTab但是有错误。
单击第三个选项卡中的button3时,未显示tabGroup。
这是在app.js
var tabGroup = Titanium.UI.createTabGroup()
var window1 = Titanium.UI.createWindow({
backgroundColor: 'cyan'
})
var window2 = Titanium.UI.createWindow({
backgroundColor: 'magenta'
})
var window3 = Titanium.UI.createWindow({
backgroundColor: 'yellow',
url: 'thirdTab.js'
})
var tab1 = Titanium.UI.createTab({
//icon
title: 'First tab',
window: window1
})
var tab2 = Titanium.UI.createTab({
title: 'Second tab',
window: window2
})
var tab3 = Titanium.UI.createTab({
title: 'Third tab',
window: window3
})
tabGroup.addTab(tab1)
tabGroup.addTab(tab2)
tabGroup.addTab(tab3)
tabGroup.open()
var button1 = Titanium.UI.createButton({
title: 'go to second',
widgh: Titanium.UI.SIZE,
height: Titanium.UI.SIZE
})
button1.addEventListener('click', function(e){
tabGroup.setActiveTab(1);
})
var button2 = Titanium.UI.createButton({
title: 'go to third',
widgh: Titanium.UI.SIZE,
height: Titanium.UI.SIZE
})
button2.addEventListener('click', function(e){
tabGroup.setActiveTab(2);
})
window1.add(button1)
window2.add(button2)
这是在thirdTab.js
var window3 = Titanium.UI.currentWindow
var button3 = Titanium.UI.createButton({
title: 'go to first',
widgh: Titanium.UI.SIZE,
height: Titanium.UI.SIZE
})
window3.add(button3)
button3.addEventListener('click', function(e){
tabGroup.setActiveTab(0);
})
答案 0 :(得分:0)
通过使用url:'thirdTab.js'加载第三个窗口,您将创建一个单独的JavaScript上下文。您可以像创建window1和window2一样创建window3,并且您可以访问相同的JavaScript变量。
为了更好地在Titanium中构建代码,您应该阅读CommonJS modules in Titanium。我喜欢的方法,因为它非常像Titanium,可能会是这样的:
....
var window3 = require('window3').createView(tabGroup);
....
exports.createView = function(tabGroup) {
var win = Ti.UI.createWindow({
backgroundColor: 'yellow'
});
var button = Ti.UI.createButton({
title: 'go to first',
width: Ti.UI.SIZE, height: Ti.UI.SIZE
});
button.addEventListener('click', function(e){
tabGroup.setActiveTab(0);
});
win.add(button);
return win;
};
通过这种方式,您可以确切地知道传递的变量以及它们的使用位置。
希望这有帮助!