HarmonyOS鸿蒙Next中@Component的组件点击跳到B page界面返回时如何能被监听到

HarmonyOS鸿蒙Next中@Component的组件点击跳到B page界面返回时如何能被监听到

mianpage 界面 Navigation 的 tab 控件中有一个 TabContent 界面 A,该界面 Navigation 布局里面有按钮点击跳到有 @Entry 装饰器 的界面 B,然后 B 界面关闭后,A 中有什么生命函数能监听到当前 A 界面显示出来了

3 回复

可以给A界面的容器加上onVisibleAreaChange回调即可监听到是否显示了:

.onVisibleAreaChange([0.0, 1.0], (isVisible: boolean, currentRatio: number) => {

  if (isVisible ) {
    console.info('显示了')

  } else {
    console.info('隐藏了')
  }
})

更多关于HarmonyOS鸿蒙Next中@Component的组件点击跳到B page界面返回时如何能被监听到的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,若要在@Component组件点击跳转到B页面并返回时监听返回事件,可以使用AbilitySliceonActive生命周期方法。当从B页面返回到当前页面时,onActive方法会被调用。你可以在onActive中编写处理逻辑,以便在返回时执行相应操作。

具体步骤如下:

  1. @Component组件的点击事件中,使用present方法跳转到B页面。
  2. 在B页面中,使用terminateback方法返回到原页面。
  3. 在原页面的AbilitySlice中,重写onActive方法,在其中添加返回时的监听逻辑。

示例代码:

// 原页面的AbilitySlice
class MainAbilitySlice extends AbilitySlice {
  onActive() {
    super.onActive();
    // 返回时的处理逻辑
  }
}

通过这种方式,你可以在@Component组件跳转到B页面并返回时,监听到返回事件并执行相应操作。

在HarmonyOS鸿蒙Next中,使用@Component的组件点击跳转到B页面后,返回时可以通过AbilityContextstartAbilityForResult方法实现监听。具体步骤如下:

  1. 在A页面使用startAbilityForResult启动B页面。
  2. 在B页面完成操作后,调用terminateSelfWithResult返回结果。
  3. 在A页面重写onAbilityResult方法,处理B页面返回的数据。

示例代码:

// A页面启动B页面
startAbilityForResult(intent, requestCode);

// B页面返回结果
Intent resultIntent = new Intent();
resultIntent.setParam("key", "value");
terminateSelfWithResult(resultCode, resultIntent);

// A页面接收结果
@Override
protected void onAbilityResult(int requestCode, int resultCode, Intent resultData) {
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
        String value = resultData.getStringParam("key");
        // 处理返回数据
    }
}

通过这种方式,可以在A页面监听到B页面的返回操作。

回到顶部