laoyang
1c1a859464
修「名册卡片右侧贴屏幕」的真凶:width('100%') 与 margin 打架(不是 flexShrink)
真机实测纠正了我第一轮的误判。
现象(用户):「名册列表左侧有空隙了……怎么右侧不是呢?右侧还是紧贴屏幕。」
像素实测:左米色 52~72px、**右米色 0px**;布局树里卡片盒子 x = **50~1080**。
🔴 真根因:卡片**同时**写了
.width('100%')
.margin({ left: 16, right: 16 })
`100%` 是相对**父容器全宽**(= 屏宽 1080),margin 再把盒子往右推
⇒ 盒子变成 50~1080(左边留 50、右边 0)—— 正是用户看到的形态。
⇒ 去掉 `.width('100%')`,Row 按"父宽 − margin"自适应,两边都是 16。
真机复验:卡片盒子 x = 50~**1030**(左右各 50,对称);
像素扫描 y=860/880/1090/1310 全部 **左=右**。
⚠️ 我第一轮误判成"内容把卡片撑破",去加了 `flexShrink(1)` —— 那是**错的**:
`flexShrink` 防的是"长名字把同行的小标签挤没",与本 bug 无关。
真正的证据是**布局树里卡片自己的 x 是 50~1080**(不是子节点越界)。
⇒ 教训:**先量"卡片本身"的盒子,再怀疑子节点。**
(`flexShrink` 保留 —— 它本身是有价值的防护,但注释已改正,
不再宣称它是本 bug 的修法。)
验证:hvigor BUILD SUCCESSFUL;_fb_arkts_guard.js 378/0;
_fb_v59c_falsify.py 16/0(本批新增第 16 项注入:把 width('100%') 加回卡片,
必须被抓住。该判据本身也反复调了三轮才既不恒红、又能抓住注入:
"别处也有" ⇒ 恒红;"取卡片尾部窗口" ⇒ 覆盖不到注入点;
"取 personRow 整段" ⇒ 段里天然含 4 处 width(3 处在注释里)⇒ 基线红;
最终 = **剥注释 + 只看卡片自己那一层**)。
2026-10-18 21:56:34 +08:00
..
2026-10-18 21:56:34 +08:00
2026-10-11 22:07:48 +08:00
2026-10-11 22:07:48 +08:00
2026-10-11 22:07:48 +08:00
2026-10-11 22:07:48 +08:00