讨论广场 问答详情
NodeController用于控制和反馈对应的NodeContainer上的节点的行为,需要与NodeContainer一起使用。下面,对其常用生命周期函数进行说明。有没有相关代码可以实现这个功能呢?
guorongcui 2026-06-28 00:03:16
30 评论 分享
harmonyos

App广告有一种场景是列表流广告,即在应用的列表流中穿插展示广告条目,旨在将广告无缝融入用户的浏览体验中,使其看起来像是正常的内容(广告条目需要加标记区别展示),从而吸引用户的注意力并提高参与度,例如新闻列表中的广告条目、商品列表中的广告条目等。在 HarmonyOS 中,如何理解这个概念?

30 评论 分享
写回答
全部评论(1)

NodeController生命周期

NodeController用于控制和反馈对应的NodeContainer上的节点的行为,需要与NodeContainer一起使用。下面,对其常用生命周期函数进行说明。

  • makeNode():必须要重写的方法,用于构建节点树、返回节点挂载在对应NodeContainer中。在对应NodeContainer创建绑定当前NodeController的时候调用、或者通过rebuild()方法调用刷新。
  • aboutToResize():当controller对应的NodeContainer在Measure的时候进行回调,入参为节点的布局大小。
  • aboutToAppear():当controller对应的NodeContainer在onAppear()的时候进行回调。
  • aboutToDisappear():当controller对应的NodeContainer在onDisappear()的时候进行回调。
  • onTouchEvent():当NodeController绑定的NodeContainer收到Touch事件时触发此回调。
  •  export abstract class NodeController {
       abstract makeNode(uiContext: UIContext): FrameNode | null;
       aboutToResize?(size: Size): void;
       aboutToAppear?(): void;
       aboutToDisappear?(): void;
       abstract rebuild(): void;
       onTouchEvent?(event: TouchEvent): void;
     }

    列表流广告组件实践案例

    场景描述

    App广告有一种场景是列表流广告,即在应用的列表流中穿插展示广告条目,旨在将广告无缝融入用户的浏览体验中,使其看起来像是正常的内容(广告条目需要加标记区别展示),从而吸引用户的注意力并提高参与度,例如新闻列表中的广告条目、商品列表中的广告条目等。

    这种广告的布局和内容在开发阶段不确定(可能是图文、视频等形式中的一种),其通常是在运行阶段,依赖服务器下发的数据进行逻辑映射后,再执行布局的构建、内容的加载显示。所以在实际的开发中,应用需要使用动态创建组件的能力去实现该列表流广告。

  •  

2026-06-28 00:04:18