只有@Entry修饰的组件才有onPageShow()生命周期,正常情况下Tabs内的组件无法触发onPageShow,下面是替代解决方案,在大于API11下,可以用onVisibleAreaChange代替
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
@Component struct ShowHideDemo { build() { Column() { // 主体布局 } .width('100%') .height('100%') // 根据显示区域判断 .onVisibleAreaChange([0.0, 1.0], (isVisible: boolean, currentRatio: number) => { if (isVisible && currentRatio == 1.0) { // 调用自定义的show方法 this.onPageShow() } else if (currentRatio == 0.0) { // 调用自定义的hide方法 this.onPageHide() } }) } // 自定义的show,可以自己随意命名 onPageShow() { // 做一些操作,比如恢复轮询请求 } // 自定义的hide,可以自己随意命名 onPageHide() { // 做一些操作,比如暂停轮询请求 } } |