Titanium 钛制选项卡组:如何关闭窗口,然后显示选项卡组?
我有以下应用程序流程: 第一个屏幕是登录屏幕,如果登录成功,选项卡组将打开 以下是代码: app.jsTitanium 钛制选项卡组:如何关闭窗口,然后显示选项卡组?,titanium,appcelerator,titanium-mobile,Titanium,Appcelerator,Titanium Mobile,我有以下应用程序流程: 第一个屏幕是登录屏幕,如果登录成功,选项卡组将打开 以下是代码: app.js var win = Titanium.UI.createWindow ({ title:'User Login', url:'Login.js', tabBarHidden:true, backgroundColor:'gray', navBarHidden:false }); win.open(); var win = Ti.UI.currentWi
var win = Titanium.UI.createWindow
({
title:'User Login',
url:'Login.js',
tabBarHidden:true,
backgroundColor:'gray',
navBarHidden:false
});
win.open();
var win = Ti.UI.currentWindow;
// some UI controls
loginBtn.addEventListener('click', function(e)
{
//calling web service
if(isSuccess == 1)
{
var tabGroup = Titanium.UI.createTabGroup();
// code to create Tab
tabGroup.open();
}
}
var win = Ti.UI.currentWindow;
var loginView = Ti.UI.createWindow
({
backgroundColor:'transparent'
});
Login.js
var win = Titanium.UI.createWindow
({
title:'User Login',
url:'Login.js',
tabBarHidden:true,
backgroundColor:'gray',
navBarHidden:false
});
win.open();
var win = Ti.UI.currentWindow;
// some UI controls
loginBtn.addEventListener('click', function(e)
{
//calling web service
if(isSuccess == 1)
{
var tabGroup = Titanium.UI.createTabGroup();
// code to create Tab
tabGroup.open();
}
}
var win = Ti.UI.currentWindow;
var loginView = Ti.UI.createWindow
({
backgroundColor:'transparent'
});
现在,如果我隐藏当前窗口(win)一切正常,但登录视图始终显示在后台!!!所以我想关闭登录窗口,然后打开标签组。所以我试着:
win.close();
tabGroup.open();
但不起作用的应用程序会崩溃
那么,如何关闭窗口,然后显示选项卡组
谢谢……如果该窗口是第一个,而不是根元素,则无法关闭。您可以尝试删除它的所有子元素,并将其背景设置为透明,然后打开
选项卡组
,如果该窗口是根元素之外的第一个窗口,并且无法关闭。您可以尝试删除它的所有子项并将其背景设置为透明,然后打开您的选项卡组解决!!!正如slash197在Login.js中所建议的那样,我试图关闭根窗口win
。因此,我在Login.js中使用了一个虚拟窗口,然后关闭它并打开选项卡组
。比如:
Login.js
var win = Titanium.UI.createWindow
({
title:'User Login',
url:'Login.js',
tabBarHidden:true,
backgroundColor:'gray',
navBarHidden:false
});
win.open();
var win = Ti.UI.currentWindow;
// some UI controls
loginBtn.addEventListener('click', function(e)
{
//calling web service
if(isSuccess == 1)
{
var tabGroup = Titanium.UI.createTabGroup();
// code to create Tab
tabGroup.open();
}
}
var win = Ti.UI.currentWindow;
var loginView = Ti.UI.createWindow
({
backgroundColor:'transparent'
});
并将所有UI组件添加到loginView
中,而不是win
然后对于Android
loginView.open();
而对于iPhone
loginView.open();
win.add(loginView);
成功后:-
loginBtn.addEventListener('click', function(e)
{
//calling web service
if(isSuccess == 1)
{
var tabGroup = Titanium.UI.createTabGroup();
// code to create Tab
//for Android
loginView.close();
//for iPhone
win.remove(loginView);
tabGroup.open();
}
}
注意:-不确定这是最佳方法。但它对我很有效。解决了!!!正如slash197在Login.js中所建议的那样,我试图关闭根窗口win
。因此,我在Login.js中使用了一个虚拟窗口,然后关闭它并打开选项卡组
。比如:
Login.js
var win = Titanium.UI.createWindow
({
title:'User Login',
url:'Login.js',
tabBarHidden:true,
backgroundColor:'gray',
navBarHidden:false
});
win.open();
var win = Ti.UI.currentWindow;
// some UI controls
loginBtn.addEventListener('click', function(e)
{
//calling web service
if(isSuccess == 1)
{
var tabGroup = Titanium.UI.createTabGroup();
// code to create Tab
tabGroup.open();
}
}
var win = Ti.UI.currentWindow;
var loginView = Ti.UI.createWindow
({
backgroundColor:'transparent'
});
并将所有UI组件添加到loginView
中,而不是win
然后对于Android
loginView.open();
而对于iPhone
loginView.open();
win.add(loginView);
成功后:-
loginBtn.addEventListener('click', function(e)
{
//calling web service
if(isSuccess == 1)
{
var tabGroup = Titanium.UI.createTabGroup();
// code to create Tab
//for Android
loginView.close();
//for iPhone
win.remove(loginView);
tabGroup.open();
}
}
注意:-不确定这是最佳方法。但这对我很有用。@adrian aproape de tine,TarguMures@adrian塔尔古·穆雷斯酒店