2016-07-07 52 views
0

時,我已經建立了自定義選項卡布局定義如下:Nativescript負荷標籤只會顯示

main.xml中

<StackLayout id="sl_main"> 
    <t1:explore  id="tab_explore" visibility="{{ currentActive == 'explore' ? 'visible' : 'collapsed' }}" /> 
    <t2:community id="tab_community" visibility="{{ currentActive == 'community' ? 'visible' : 'collapsed' }}"/> 
    <t3:profile  id="tab_profile" visibility="{{ currentActive == 'profile' ? 'visible' : 'collapsed' }}" /> 
</StackLayout> 

由於所有這些標籤都做CPU密集型操作 - 例如作爲下載和上傳圖像 - ,我希望每個選項卡僅在實際顯示時加載(發生在visibility屬性從collapsed切換爲012時發生)

編輯 基本上是正確的,現在,當我瀏覽到main.js所有選項卡loaded事件被調用。

所以,當我導航到main我有3個cpu密集型功能一個接一個地運行。 (tab_explore.loaded , tab_community.loaded , tab_profile.loaded)我想要的是,如果visible選項卡是tab_explore我只能調用它的loaded函數。比tab_profile變成visible I load功能等 你會怎麼做到這一點?

+0

請您更清楚地解釋一下嗎? 「我希望每個標籤僅在實際顯示時加載」是什麼意思? –

+0

好的,我已經更新了這個問題!謝謝 –

回答

0

根據您的示例,可見性標誌只是一個可視狀態(隱藏或不隱藏)。該視圖仍然加載到內存中,並在後臺處於活動狀態。

也許你的製表符選擇邏輯應該是從容器中添加/刪除部分視圖?而不是隱藏/顯示它們?

這樣,每次選擇適當的選項卡時,每個視圖的卸載/加載事件都會觸發。

+0

準確!如何以編程方式加載/卸載選項卡? –