Skip to content

Commit 170a21f

Browse files
committed
feat(ohos): update component hit test doc
1 parent c8434d9 commit 170a21f

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

docs/development/ohos-integration-guidelines.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,3 +218,8 @@ Hippy页面退出时,需要释放资源。 destroyModule 用来释放对应 lo
218218
- 先用 ArkUI Inspector 工具检查界面上是否有元素,其中 Hippy 组件的 id 都是 “HippyId+数字”的形式
219219
- 如果界面上有元素,但看着白屏,可能1:元素 size 为0,进而可能布局更新有问题,可能2:元素无可见属性设置,可能业务没有更新数据
220220
- 如果界面上无元素,可能 JS Bundle 加载失败,检查控制台 Log,搜索 “JSHCtx::RunScript” 关键词,检查附近 JS 文件是否加载到并正确执行
221+
222+
### 页面点击穿透问题
223+
224+
- 鸿蒙下 ArkUINode 里默认把所有组件的 HitTest 模式都设为了 TRANSPARENT,可能导致某些业务场景顶层的页面拦不住事件。
225+
- 原因和兼容方法:Hippy组件和自定义组件嵌套的复杂场景,鸿蒙默认又不裁剪overflow的部分,复杂场景容易出现点不了的问题。 所以兼容方法:默认HitTest都响应,业务具体场景要阻塞,鸿蒙上使用hit-test-ohos属性自己兼容。 (基于多数场景能点更重要,少数场景才有覆盖的假设)。

framework/ohos/src/main/cpp/impl/renderer/native/src/arkui/arkui_node.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,9 @@ bool ArkUINode::HasParent() {
136136
}
137137

138138
void ArkUINode::SetDefaultAttributes() {
139-
// TODO: HitTest改默认行为有问题,待研究。
139+
// Hippy组件和自定义组件嵌套的复杂场景,鸿蒙默认又不裁剪overflow的部分,复杂场景容易出现点不了的问题。
140+
// 所以兼容方法:默认hitTest都响应,业务具体场景要阻塞,鸿蒙上使用hit-test-ohos属性自己兼容。
141+
//(基于多数场景能点更重要,少数场景才有覆盖的假设)
140142
SetHitTestMode(ARKUI_HIT_TEST_MODE_TRANSPARENT);
141143
baseAttributesFlagValue_ = 0;
142144
}

0 commit comments

Comments
 (0)