From aa3187f7d965773c1206dca74180da603cd0c7b5 Mon Sep 17 00:00:00 2001 From: laoyang Date: Wed, 4 Nov 2026 19:29:52 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=BE=85=E5=8A=9E):=20=E5=BE=85=E5=8A=9E?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E9=A1=B5=E8=A1=A5=E9=BD=90=E6=B2=89=E6=B5=B8?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E4=B8=8E=E6=96=B0=E5=BB=BA=E6=97=A5=E7=A8=8B?= =?UTF-8?q?=E5=AE=8C=E5=85=A8=E4=B8=80=E8=87=B4=20(#47)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 问题 用户指出:新建日程是沉浸式的(状态栏背景与页面同色), 而新建待办页顶部标题栏区域是白的,与状态栏割裂。 ## 根因 EventEditPage 的根容器有两行关键设置,TodoEditPage 漏了: .padding({ top: 12 }) .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) `expandSafeArea` 让**背景**延伸到状态栏/导航条区域(只扩绘制范围、不移动子组件), `padding top:12` 给状态栏留视觉空间。缺了前者,根容器高度被限制在安全区内, 状态栏下方露出独立色块 → 视觉断层。 ## 验证(像素级对比,设备 5NC0225B27004718) | 采样点 | 新建日程 | 新建待办(修复后) | |---|---|---| | 状态栏 y=0~160(x=540) | 全部 (242,243,245) | 全部 (242,243,245) | | 标题栏区平均色 | (229,232,236) | (229,232,236) | | 取消按钮 bounds | [50,158][174,267] | [50,158][174,267] | | 标题 bounds | [427,180][653,246] | [427,180][653,246] | | 保存按钮 bounds | [906,158][1030,267] | [906,158][1030,267] | 三项 UI 元素 bounds 与两处背景色采样**完全相同** → 沉浸式效果一致。 ## 踩坑记录 `hdc file recv` 拉截图会失败(产物只有 30 字节); `hdc shell cat` 拉二进制同样损坏。 改用 `hdc shell "base64 -w 0 "` 再本地解码,可靠。 --- entry/src/main/ets/pages/TodoEditPage.ets | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/entry/src/main/ets/pages/TodoEditPage.ets b/entry/src/main/ets/pages/TodoEditPage.ets index 5d5fafb..9336667 100644 --- a/entry/src/main/ets/pages/TodoEditPage.ets +++ b/entry/src/main/ets/pages/TodoEditPage.ets @@ -842,7 +842,11 @@ struct TodoEditPage { } .width('100%') .height('100%') + .padding({ top: 12 }) .backgroundColor($r('app.color.page_bg')) + // ⭐ 沉浸式:背景延伸到状态栏/导航条区域(与 EventEditPage 一致) + // 只扩绘制范围、不移动子组件 → 状态栏区域同色,不再是割裂的白条 + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) } /** 字段小标题 */