Files
FamilyBook_harmonyos/entry
laoyang ad63b4c89d 修:面板底部「保存/删除」按钮被裁掉看不见 (#77)
用户 2026-11-05:「你改的是什么?是鸿蒙版吗?怎么没有看到任何按钮啊?」

代码确实在(我解包 sy-77.hap 在 modules.abc 里搜到了"保存中"字符串),
是**布局把它裁掉了**。

真根因:中间那个 Scroll 用的是 `flexShrink(1)` ——
`flexShrink` 只表示"空间不够时允许收缩",但 Scroll 的**内容高度**
仍会把自身撑开(ArkUI 竖向 Scroll 默认按内容高参与布局)。于是:
  头部 + Scroll(按内容撑满) 吃光 `maxHeight: 86%`
  → 下面的 footBar 被推到 86% 之外
  → `FbSheetRing.clip(true)` 把它整条裁掉
  ⇒ 一颗按钮都看不见(而且连痕迹都没有,看起来就像"没做")。

改法:
① Scroll → `layoutWeight(1)`
   "占据剩余空间"而不是"按内容撑开"。高度被限定成
   "86% − 头部 − 分割线 − footBar",footBar 因此必然留在可视区内,
   内容再长也只在自己内部滚动。
② footBar 补 `flexShrink(0)`
   显式禁止压缩,防止某些机型把 42 高的按钮压扁。

⚠️ 旧注释(v60b)说 `layoutWeight(1)` 会让"短内容也把卡片顶满、底下留一片空白"。
   那个副作用是真的,但属于观感问题;按钮看不见是功能问题。
   两害相权先保证按钮可用。要消空白的话正确做法是外层配 minHeight:0,
   而不是回到 flexShrink(那条路会让底栏被挤出去)。

编译通过,已装真机。
2026-11-05 19:58:53 +08:00
..