我已经设置了自定义标签布局,定义如下:
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
成为visible
我load
那个功能等
你会如何实现这一目标?
答案 0 :(得分:0)
根据您的示例,可见性标志只是一种可视状态(隐藏或不隐藏)。视图仍然加载到内存中,并在后台处于活动状态。
也许您的标签选择逻辑应该添加/删除来自容器的部分视图?而不只是隐藏/显示它们?
这样,每次选择适当的选项卡时,每个视图的卸载/加载事件都会触发。