Nativescript仅在显示时加载选项卡

时间:2016-07-07 07:03:12

标签: 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密集型操作 - 例如下载和上传图像 - ,我希望每个标签只在实际显示时加载(当它&#时会发生) 39; s visibility属性从collapsed切换到visible

修改 基本上,当我导航到main.js时,所有标签loaded事件都会被调用。

因此,当我导航到main时,我有3个cpu密集型函数,所有函数都依次运行。 (tab_explore.loaded , tab_community.loaded , tab_profile.loaded)我想要的是,如果visible标签为tab_explore,我只会调用其loaded函数。比tab_profile成为visibleload那个功能等 你会如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

根据您的示例,可见性标志只是一种可视状态(隐藏或不隐藏)。视图仍然加载到内存中,并在后台处于活动状态。

也许您的标签选择逻辑应该添加/删除来自容器的部分视图?而不只是隐藏/显示它们?

这样,每次选择适当的选项卡时,每个视图的卸载/加载事件都会触发。

相关问题