Fork
0
代码
介绍
代码
Issues
Pull Requests
流水线
Actions
讨论
Wiki
项目成员
分析
项目设置
Fork
0
master
arkui_ace_engine
/
frameworks
/
bridge
下载当前目录
fuhanfeng
Fix nested lazy layout in scroll containers: honor contentStart/EndOffset for sticky header/footer, pin SW lazy-child lane endPos to full measured height,
4d173fd5
创建于
5 小时前
历史提交
文件
最后提交记录
最后更新时间
arkts_frontend
!85717
merge env_decorator_extends_first into master Env decorator extends Created-by: yuxiaofei9 Commit-by: yuxiaofei Merged-by: openharmony_ci Description: **IssueNo**:
https://gitcode.com/openharmony/arkui_ace_engine/issues/77786
**Description**: Env decorator extends **Sig**: SIG_ApplicationFramework **Binary Source**: No(涉及则Yes) ## 请勿修改以下选项内容,仅需保存后点击复选框,或在编辑时将对应项前面的
[ ]
改为
[x]
## Do not modify the following option content. Simply save and click the checkbox, or when editing, change
[ ]
to
[x]
for the relevant item. ### Feature or Bugfix - [x] 需求/Feature - [ ] 缺陷/Bugfix ### 是否涉及非兼容变更/Whether it involves incompatible changes - [ ] 是/Yes - [x] 否/No ### TDD自验结果/TDD Self-Verification Results - [ ] 通过,请在下方提供截图/Pass. Provide execution details in picture below. - [ ] 失败,请在下方提供基线执行情况截图/Fail. Provide baseline execution details in picture below. - [x] 不涉及/Not Involved ### XTS自验结果/XTS Self-Verification Results - [ ] 通过,请在下方提供截图/Pass. Provide execution details in picture below. - [ ] 失败,请在下方提供基线执行情况截图/Fail. Provide baseline execution details in picture below. - [x] 不涉及/Not Involved ### 检视意见是否都已闭环/Have all review comments been resolved - [x] 是/Yes - [ ] 否/No ### 是否已执行L0用例 - [x] 已验证/Yes - [ ] 不涉及,请在下方说明原因/Not Involved. Please specify the reasons below. See merge request: openharmony/arkui_ace_engine
!85717
1 天前
card_frontend
refactor(bridge): collapse JS callback wrappers stripped libace_compatible.z.so size before baseline/master: 57688036 bytes stripped libace_compatible.z.so size after: 57622344 bytes stripped libace_compatible.z.so delta vs baseline/master: -65692 bytes Scope: - legacy js bridge task and callback forwarders - declarative JSView callback wrappers - repeat JS function callbacks - JSI animation callback tasks - plugin/frontend delegate task callbacks Implementation: - replace repeated lambda/std::function bodies with narrow callback/task carriers - add declarative JS callback state helpers - preserve concrete callback execution paths in accepted helper replacements Change-Id: I71b2760eb3cda7ec23dc62a7567b042381c716c0 Signed-off-by: Mikhail V. Lobakh <lobah.mikhail@huawei-partners.com>
4 天前
cj_frontend
!85062
merge pr_3_optimize into master 头文件编译优化 Created-by: silverbullet1412 Commit-by: silverbullet1412 Merged-by: openharmony_ci Description: **IssueNo**:
#76837
**Description**: 头文件编译优化 **Sig**: SIG_ApplicationFramework **Binary Source**: No ## 请勿修改以下选项内容,仅需保存后点击复选框,或在编辑时将对应项前面的
[ ]
改为
[x]
## Do not modify the following option content. Simply save and click the checkbox, or when editing, change
[ ]
to
[x]
for the relevant item. ### Feature or Bugfix - [ ] 需求/Feature - [x] 缺陷/Bugfix ### 是否涉及非兼容变更/Whether it involves incompatible changes - [ ] 是/Yes - [x] 否/No ### TDD自验结果/TDD Self-Verification Results - [ ] 通过,请在下方提供截图/Pass. Provide execution details in picture below. - [ ] 失败,请在下方提供基线执行情况截图/Fail. Provide baseline execution details in picture below. - [x] 不涉及/Not Involved ### XTS自验结果/XTS Self-Verification Results - [ ] 通过,请在下方提供截图/Pass. Provide execution details in picture below. - [ ] 失败,请在下方提供基线执行情况截图/Fail. Provide baseline execution details in picture below. - [x] 不涉及/Not Involved ### 检视意见是否都已闭环/Have all review comments been resolved - [x] 是/Yes - [ ] 否/No ### 是否已执行L0用例 - [ ] 已验证/Yes - [x] 不涉及,请在下方说明原因/Not Involved. Please specify the reasons below. See merge request: openharmony/arkui_ace_engine
!85062
1 天前
codec
remove print log impl for ohos platform Signed-off-by: lushi1202 <lushi@huawei.com> Change-Id: Ic2f82c34315015b66de22e7a2b3b9e596f8b9353
2 年前
common
refactor(bridge): collapse JS callback wrappers stripped libace_compatible.z.so size before baseline/master: 57688036 bytes stripped libace_compatible.z.so size after: 57622344 bytes stripped libace_compatible.z.so delta vs baseline/master: -65692 bytes Scope: - legacy js bridge task and callback forwarders - declarative JSView callback wrappers - repeat JS function callbacks - JSI animation callback tasks - plugin/frontend delegate task callbacks Implementation: - replace repeated lambda/std::function bodies with narrow callback/task carriers - add declarative JS callback state helpers - preserve concrete callback execution paths in accepted helper replacements Change-Id: I71b2760eb3cda7ec23dc62a7567b042381c716c0 Signed-off-by: Mikhail V. Lobakh <lobah.mikhail@huawei-partners.com>
4 天前
declarative_frontend
!85718
merge fix-header-footer into master LazyVWaterFlowLayout/LazyVGridLayout/LazyColumnLayout header/footer bugfix Created-by: fuhanfeng Commit-by: fuhanfeng Merged-by: openharmony_ci Description: **IssueNo**: [
#77787
](
https://gitcode.com/openharmony/arkui_ace_engine/issues/77787)
**Description**: #### 1. sticky header/footer 未考虑 contentStartOffset/EndOffset - 现象:List/Scroll/WaterFlow 设了 contentStartOffset/EndOffset,嵌套 lazy 的置顶 header / 置底 footer 仍贴边、压住祖先 sticky。 - 根因:父容器预留的 inset 没传给子 lazy,sticky 位置计算缺这段偏移。 - 方案:LazyLayoutUtils::SetStickyInsets 统一把 inset 注入子 lazy 的 pattern;CalcStickyHeaderPos/FooterPos 纳入 stickyTopInset/stickyBottomInset。 #### 2. 滑窗 WaterFlow + 超高 lazy 子滑不到底、回弹 - 现象:慢速滑到接近底部被弹回,只有快速 fling 能到底。 - 根因:视口下方的高度增长被上报为 adjustOffset 0,增量路径让 lane endPos 滞后,AdjustOverScroll 误判已到底。 - 方案:MeasureLazyChild 中单 lazy 子(单车道)把 lane.endPos 钉到完整测量高度。 #### 3. 滑窗下拉把置顶 header 拉下 footer 高度 - 现象:WaterFlow SW 下拉,header 被多拉了一个 footer 的高度。 - 根因:LazyColumn SyncPredictLayoutInfo 在 PROPERTY_UPDATE_MEASURE_SELF 路径返回的 totalMainSize_ 已含 footer,Measure 末尾又无条件 + footerMainSize_,重复计入、错位 SW END 锚点。 - 方案:该 predict 路径返回前先剥掉一份 footer 高度。 #### 4. 动态改 header 高度,被遮节点不刷新 - 现象:运行时改 header 高,被遮住的 item 不重绘,滑动后才恢复。 - 根因:这些 item 位置变了但自身 clean,LayoutContentItem 只对 dirty/嵌套 lazy 调 Layout(),clean item 几何没同步。 - 方案:对齐 ListItemGroup,clean item 改用 ForceSyncGeometryNode() + ResetLayoutAlgorithm()。 #### 5. 切 sticky 成 undefined 后 header 成 item0 - 现象:sticky 改成 undefined/None 后 header 变成第一个 item,滑动才恢复。 - 根因:切 sticky 触发重渲染重建了 edge 节点,而该帧复用了旧 LayoutAlgorithm,其构造时抓的 header_/footer_ 弱引用悬空 → headerIndex_=-1、headerMainSize_=0。 - 方案:对齐 ListItemGroup「不缓存节点指针」,在 UpdateHeaderFooterIndexes 里从 pattern 现取 header/footer(wf/column/grid 三处)。 #### 6. LazyVGridLayout 的 header/footer 等 modifier 未注册 - 现象:LazyVGridLayout 走 modifier 路径设 header/footer/sticky 无效。 - 根因:d838c464 只补了 TS 源,漏了编译产物 arkComponent.js 里 grid 的 sticky/header/footer/onVisibleIndexesChange(其它两个组件补了)。 - 方案:在 arkComponent.js 的 ArkLazyVGridLayoutComponent 补齐四个方法 + 对应 Modifier 类。 #### 7.LazyVWaterFlow 静态/直接子节点 active range 未正确下发 - 现象: 直接 item 或 ArkoalaLazyNode 子树只渲染前几个,滚动后部分 item/Text 丢失,回滑后才恢复。 - 根因: 只给 grouped syntax child 下发 DoSetActiveChildRange,直接子节点场景没有稳定调用 wrapper-level SetActiveChildRange;带 header/footer 时还要把 raw index 转成 item-local range。 - 方案: UpdateActiveChildRange 统一维护 cache window;无 header/footer 直接 SetActiveChildRange,有 header/footer 用 ActiveChildSets 保活 edge,并通过 ActivateContentItemRange 向内容子树转发 item range。 #### 8.LazyVWaterFlow 的 visible callback 和预加载范围混在一起 - 现象: List contentClip / safeArea 下,onVisibleIndexesChange 把 padding/safeArea 扩展区里的预加载 item 也当成可见 item。 - 根因: WaterFlow 只有 startIndex_/endIndex_ 一套范围,既用于 active/preload,又用于 visible callback。 - 方案: 增加 visibleStartIndex_/visibleEndIndex_,UpdateVisibleRange 负责 expanded active window,UpdateVisibleCallbackRange(viewStart + extStart, viewEnd - extEnd) 负责实际 callback。 #### 9.LazyVWaterFlow 在 WaterFlow 父容器下缺少 viewPosRef 时退化错误 - 现象: 嵌在 WaterFlow 里的 LazyVWaterFlow 偶发全量/无限范围测量,或缺少正确视口基准。 - 根因: 父 WaterFlow 没给 vertical ViewPosReference 时,LazyVWaterFlow 直接走默认 fallback,未区分“合法纵向懒布局父容器”和普通非懒场景。 - 方案: 增加 IsVerticalScrollableParent / HasDirectWaterFlowAncestor 判断;缺失 WaterFlow ref 时使用有限 fallback main size,并打印 warning。 #### 10.END 锚点首次测量后窗口没有按真实内容高度回基准 - 现象: stackFromEnd / 底部锚定场景,LazyVWaterFlow 首帧把 offscreen child 算成可见或预加载错位,后续 range 与 LazyColumn/LazyGrid 不一致。 - 根因: UpdateReferencePos 发生在测量前,totalMainSize_ 可能还是 0;测完得到真实高度后没有把 view/cache window 重新平移到当前内容坐标。 - 方案: 增加 RebaseEndReferenceToCurrentSize,END 锚点测完后用 totalMainSize_ - realMainSize_ 回补窗口,并 RefillRebasedMeasureWindow 按新 cache window 重新补测。 #### 11.静态 LazyForEach cache item 进入可见区后子树仍 inactive - 现象: item 背景/容器出现,但里面 Text 不显示;再次滚动触发布局后恢复。 - 根因: cache 构建时 JS 子树被标 inactive,后续同一个 wrapper 进入 visible range 时只布局 item root,没有递归恢复 FrameNode active 状态。 - 方案: visible item 布局前调用 RestoreActiveFrameSubtree,并对 visible/nested lazy 走完整 Layout(),保证 Text 等子节点重新同步。 #### 12.LazyVWaterFlow content clip 裁剪区扩展未对齐 LazyColumn/LazyGrid - 现象: List 的 BOUNDARY / SAFE_AREA content clip 下,LazyVWaterFlow 只能按真实可见区渲染,扩展区不能上下预加载半屏;多 LazyVWaterFlow 叠放时 offscreen preload 范围不对。 - 根因: view window、cache window、callback visible window 没有按 LazyColumn/LazyGrid 的职责拆开。 - 方案: viewStart_/viewEnd_ 吸收父容器 clip extension,cacheStartPos_/cacheEndPos_ 再扩半屏;callback 使用去掉 extension 的窗口,并补 List content clip TDD。 **Sig**: SIG_ApplicationFramework **Binary Source**: No(涉及则Yes) ## 请勿修改以下选项内容,仅需保存后点击复选框,或在编辑时将对应项前面的
[ ]
改为
[x]
## Do not modify the following option content. Simply save and click the checkbox, or when editing, change
[ ]
to
[x]
for the relevant item. ### Feature or Bugfix - [ ] 需求/Feature - [x] 缺陷/Bugfix ### 是否涉及非兼容变更/Whether it involves incompatible changes - [ ] 是/Yes - [x] 否/No ### TDD自验结果/TDD Self-Verification Results - [x] 通过,请在下方提供截图/Pass. Provide execution details in picture below. - [ ] 失败,请在下方提供基线执行情况截图/Fail. Provide baseline execution details in picture below. - [ ] 不涉及/Not Involved ### XTS自验结果/XTS Self-Verification Results - [x] 通过,请在下方提供截图/Pass. Provide execution details in picture below. - [ ] 失败,请在下方提供基线执行情况截图/Fail. Provide baseline execution details in picture below. - [ ] 不涉及/Not Involved ### 检视意见是否都已闭环/Have all review comments been resolved - [x] 是/Yes - [ ] 否/No ### 是否已执行L0用例 - [ ] 已验证/Yes - [x] 不涉及,请在下方说明原因/Not Involved. Please specify the reasons below. See merge request: openharmony/arkui_ace_engine
!85718
2 小时前
js_frontend
refactor(bridge): collapse JS callback wrappers stripped libace_compatible.z.so size before baseline/master: 57688036 bytes stripped libace_compatible.z.so size after: 57622344 bytes stripped libace_compatible.z.so delta vs baseline/master: -65692 bytes Scope: - legacy js bridge task and callback forwarders - declarative JSView callback wrappers - repeat JS function callbacks - JSI animation callback tasks - plugin/frontend delegate task callbacks Implementation: - replace repeated lambda/std::function bodies with narrow callback/task carriers - add declarative JS callback state helpers - preserve concrete callback execution paths in accepted helper replacements Change-Id: I71b2760eb3cda7ec23dc62a7567b042381c716c0 Signed-off-by: Mikhail V. Lobakh <lobah.mikhail@huawei-partners.com>
4 天前
plugin_frontend
fix(bridge): address callback style warnings Signed-off-by: Mikhail V. Lobakh <lobah.mikhail@huawei-partners.com> Change-Id: Id1267c316e175d2d80b46f5e7da1c15a00defc60
4 天前
test
Co-Authored-By:Agent unittest: remove legacy mock files and update mock path references Signed-off-by: lushi <lushi@huawei.com> Change-Id: Ia9163b737c77d33312a1b8c2e4ec769d8e51cec3
2 个月前
BUILD.gn
arkui-x 编译问题修复 Signed-off-by: ajajaaj1024 <tujiren@huawei.com> Change-Id: I6de9d77a52202668195cfec3870d274c88aaa9e2
10 个月前