2017-06-21 48 views
0

我製作一個基於標籤的應用程序,並希望顯示/隱藏登錄或用戶配置文件選項卡,具體取決於用戶是否登錄。我怎樣才能做到這一點?我嘗試設置選項卡的可見屬性,但這不起作用,並且兩個選項卡都可見。如何使用Appcelerator/Titanium動態顯示選項卡?

如果有條件設置兩個選項卡不能很好地工作,有沒有辦法動態地改變src文件的加載?我不想將配置文件和登錄/註冊功能放在一個文件中。

INDEX.XML:

<Alloy> 
<TabGroup id="root"> 
    <Tab id="profile" visible="false" title="Profile" icon="KS_nav_views.png"> 
     <Require type="view" src="profile" /> 
    </Tab> 
    <Tab id="login" title="Login" icon="KS_nav_views.png"> 
     <Require type="view" src="modalLogin" /> 
</TabGroup> 
</Alloy> 

index.js()

// open TabGroup 
$.root.open(); 
var userStatus = "loggedin"; 
showProfile(userStatus); 
function showProfile(user){ 
    if (user == "loggedin") { 
    $.login.visible = false; 
    $.profile.visible = true; 
    console.log("user is logged in"); 
    } else { 
    $.profile.visible = false; 
    $.login.visible = true; 
    console.log("user is not logged in"); 
    } 
} 

回答

0

按照Titanium.UI.TabGroup文檔:

...標籤不能被刪除從標籤組添加,並且標籤不能 被重新排序。

從我的經驗來看,TabGroup成分是真的限制,大多是由開發者定製的部件更換。也許這也是你的情況!

至於動態的Require源文件,我會建議根據您的需要編程創建/刪除視圖元素,而不是將其插入XML。再一次,我在飛行中大幅改變視圖元素的經驗並不是最好的:當我嘗試去做時,出現了一些狂野的bug。

所以,我寧願完全摧毀一個元素,然後插入另一個'手動'。

但是,嘿,試試吧!您可能會遇到更好的解決方案=) 僅供參考,這裏是Require標籤上的the iffy documentation

+0

感謝您的澄清。我想我會把所有文件放在一個文件中,或者用一個模塊嘗試。 – user24957

相關問題