跨端: 底部导航选中态——图标也变色(鸿蒙侧补齐),选中态只换颜色

用户:「ui更新同步到鸿蒙端」+「选中对应的文字和图标变色即可」。

WebUI(上一提交):删掉背景块与顶部指示条,只留颜色。
鸿蒙侧:本来就没有背景/指示条(选中态从没用形状表达过),缺的是**图标那一半** ——
MainPage.NavItem 里只有 label 上了 fontColor,图标一直保持默认色,看着像选中了一半。

- MainPage.NavItem:图标补 fontColor,与 label 过同一个三元式
- 判据 harmony-nav ⑤ + 真变异自检(删掉图标那行 fontColor,⑤ 立刻红)
- 自检本身也修了一处窗口式判据:原来用 [\s\S]{0,80} 找 fontColor,
  把下一行 label 的也圈了进来,自检自己假绿
- 模拟器实测(harmony-emu + hvigorw + hdc + uitest):同一字形在两项之间颜色随选中**对调**
  (核心色 81,121,187 选中 vs 135,168,217 未选中)
- 提交归属:本提交同时动 harmony 与 electron,按仓库判据自报家门(跨端:)
This commit is contained in:
pi
2026-09-14 18:09:59 +08:00
parent 12294835da
commit 79e591aa8b
2 changed files with 67 additions and 1 deletions

View File

@ -1687,7 +1687,19 @@ struct MainPage {
@Builder
NavItem(item: NavItem, index: number) {
Column() {
Text(item.icon).fontSize(20)
/*
* 选中态**只换颜色**,而且**图标与文字都要换**。
*
* 用户(2026-09-14):「同时底部导航栏选中对应的文字和图标变色即可」。
* 这与 WebUI 侧是同一件事:那边删掉了背景块与顶部指示条、只留颜色
* (`NarrowNav.tsx` / `.narrow-nav .nav-item[data-active='true']`)。
* 鸿蒙这一侧本来就没有背景 / 指示条(选中态从没用形状表达过),
* 缺的是**图标这一半**:原来只有 label 上了色,图标一直是默认色,
* 看上去像「选中了一半」。两处都过同一个三元式,避免以后只改一处。
*/
Text(item.icon)
.fontSize(20)
.fontColor(this.currentIndex === index ? Theme.navFgActive : Theme.navFg)
Text(item.label)
.fontSize(Theme.fontTiny)
.fontColor(this.currentIndex === index ? Theme.navFgActive : Theme.navFg)