Files
FamilyBook_harmonyos/entry
laoyang acb2eadcb7 fix(card): 观影海报墙格数改偶数并按海报去重 #3
用户原话:「怎么是单数的?我这里看,显示的是21张图片。观影卡片。」

上一版(#2)修掉了「只有 6 张图」,但留下了新的结构问题:
  · keys(配图)按 poster 去重,上限 20
  · list(格子)按行过滤,无上限
⇒ 一部电影看了两场(两天各一场 / 重映),两行 poster 相同、拿到的 img
  也相同,于是「有图的行数」会**多于**「图片张数」,可能是 21 这种单数。
两列栅格下奇数格必然让最后一行右侧留空 —— 就是用户看到的样子。

修法(`list` 的语义是「一部电影一格」,不是「一场观影一格」):
  · 按 poster 去重(键用 poster 而非 title:同名重映 / 译名相同的不同片不算同一部)
  · 顺带保证偶数:len - (len % 2),不写死 20/18(图少时减法会变负索引)
  · poster === '' 的行显式跳过(没海报键的行不该进墙)

验证:静态守卫 1324/0(新增 groupV97 六条)· 反向验证 13/0(6 条注入各自命中)
编译 BUILD SUCCESSFUL,产物 6.2M。真机待验(hdc 设备掉线,见工单)。

顺带修掉两处「跑不起来」的环境问题(与本次 bug 无关,但会挡住验证):
  · 编译脚本补 JAVA_HOME / PATH:PackageHap 阶段要 spawn java,
    缺了只报 `Error Code: 00308018 Unknown Error`,真因
    `spawn java ENOENT` 藏在 build-logs 深处。
  · PATH 必须写 POSIX 风格 /d/... 而不是 D:/...:
    MSYS2 的 PATH 是冒号分隔,`D:/xxx` 里的冒号会把路径劈成两段。
2026-10-28 10:10:33 +08:00
..