2016-07-07 45 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

准确!如何以编程方式加载/卸载选项卡? –