Files
MailUI4Agents/client/harmony
JianFeeeee a97b83e221 跨端: 宽屏右栏空态(splitPlaceholder)—— WebUI 有引导,我们原来一片空白
用户:「你自己看看跟 webui 相比,观感真的差很多」。同 1107vp 视口并排后,
差异确实明显,其中**最扎眼**的一条:宽屏两栏并排时,右栏是**一大片空白**。

WebUI 有引导(`MailView.tsx:121-129`):
    信封图标 + 「选择一封邮件查看,或点击左侧「新建」写邮件」
我们什么都没渲染。

★ 第一版放错位置(记下来,这个坑很隐蔽)
  我把它写进 `NavDestination` 的 `else` 分支 —— 而 **`NavDestination` 只在
  push 之后才挂载**,栈空时它根本不存在 ⇒ 那个 else **一次都不会显示**
  (实测:加上去之后右栏仍然全空)。
  正确入口是 `splitPlaceholder(ComponentContent)`:系统给"右栏默认页"的专用 API
  (`navigation.d.ts`,API 20+,我们是 23),由 `Navigation` 在栈空时自己渲染。

★ 三个 ArkTS 约束(都撞了才过)
  ① `splitPlaceholder` 要的 `wrapBuilder` 只接受**全局** `@Builder` 函数 ——
     写成 struct 成员方法会报 "The wrapBuilder's parameter should be '@Builder' function"。
     内容本身是静态的(不需要 `this`),所以全局正好。
  ② `wrapBuilder` 是**全局声明**(`common.d.ts:27448`),**不在** `@kit.ArkUI` 里 ——
     从 kit 引会报 "has no exported member"。
  ③ `ComponentContent` 要从 `@kit.ArkUI` 引。

文案**逐字对齐 WebUI**(同一句话,不自己改写)—— 与本仓既有纪律一致
(`harmony-logic` 里「空态主句与 WebUI 逐字一致」那条是同源要求)。

设备验证:`选择一封邮件查看,或点击左侧「新建」写邮件` 已在右栏渲染(布局树可见)。
2026-09-20 12:07:32 +08:00
..