我已经设置了一个自定义选项卡布局,定义如下:
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切换到visible时发生的)。
编辑,现在,当我导航到main.js时,所有的选项卡都会调用loaded事件。
因此,当我导航到main时,我有3个cpu密集型函数,它们都一个接一个地运行。( tab_explore.loaded , tab_community.loaded , tab_profile.loaded )我想要的是,如果visible选项卡是tab_explore,我只调用它的loaded函数。而不是当tab_profile变成visible,i,load,函数等等,你是如何实现的?
发布于 2016-07-08 10:25:57
根据您的示例,可见性标志仅为可视状态(隐藏与否)。视图仍被加载到内存中,并在后台处于活动状态。
也许您的选项卡选择逻辑应该是添加/删除容器中的部分视图的?而不是只是隐藏/向他们展示?
这样,每次选择正确的选项卡时,每个视图的卸载/加载事件都会触发。
https://stackoverflow.com/questions/38239352
复制相似问题