fix(download): 窄档面板加专属预算,首屏露出 head+六枚 chip+说明、实例名回到 56px(M227)
720×760(chips 档)原先走 `TailShare::Shared`:面板与列表各吃 Fill 的一半,面板钉死区 (说明 + 菜单 + 实例名 ≈180px)把它吃穿 ⇒ 滚动区视口 0,head(版本 id + 安装按钮)、 六枚加载器 chip、说明一个像素都不在屏,实例名被挤成 35px 且降部被自身边框裁掉 (M222 D30 五审 `artifacts/m222/visual-verdict-r5-hold.md`)。 改法(把 M222 在 1180 档验证过的「面板先保预算、列表吃整行」落到窄档): - `TailShare` 拆出第三支 `Narrow`(chips 档 + 面板占高度),`of()` 的三条 arm 与 `Shared` 的机制注释按 r8 finding 重写(旧文档只写 M125 那一条条件); - 新增 `CHIPS_STACK` 121 / `CHIPS_LIST_CHROME` 119 / `CHIPS_PANEL_BUDGET` 192 与 `narrow_rows()`:720/760 下面板先拿预算,列表 = **132px = 3 整行**(M125 像素守门的下限); - `options::section` 三分支:窄档钉死区**只留实例名**,head / 六枚 chip / 说明 / 版本菜单 进滚动区(滚动区 120px ≥ 首屏 104,菜单露容器上沿 + 滚动条可见); - `TailShare::list_height()` 把「列表吃多少」收到一处,两个装配点共用(三栏档行为不变)。 取舍:窄档列表 4 整行 → 3 整行;菜单从钉死改为可滚。理由(459px 里「钉住菜单」+「3 整行 列表」互斥)写在 `rows/tail.rs::CHIPS_PANEL_BUDGET`。 实测(tiny-skia 出图 + 自写 measure.py,DevDocs/artifacts/m227/): 720×760 分隔线 559→514、滚动区 0→120、head 539–578、chips 583–614(32px)、说明 623–634 (8.98:1 浅 / 10.83:1 深)、实例名 668–723 = 56px(inset 12/9/17); 700×760(options-fabric)实例名从「完全不在屏」回到 56px;四条像素守门全绿; 1180×760 浅/深/中 与 1180×900 **逐像素零变化**。
This commit is contained in:
1 parent
6c060a09e2
commit
a70d5f8010
9 files changed
+331
-159
No files matched your search
@@ -146,7 +146,7 @@ fn the_demo_data_is_sane() {
|
||||
assert!(demo.rows.iter().all(|row| !row.supporting.contains('版')));
|
||||
}
|
||||
|
||||
/// 列表与尾部面板怎么分高:**档位 × 面板形态**两个条件同时成立才对半分。
|
||||
/// 列表与尾部面板怎么分高:**档位 + 面板形态** → 三档之一(`Pinned` / `Shared` / `Narrow`)。
|
||||
///
|
||||
/// 修前(M123):面板一律按内容高钉在底部,700×760 的 chips 档里列表只剩 18px(0.4 行)。
|
||||
/// M125 r1 修法只判档位,又踩出另一条回归:chips 档「刚进页面还没选版本」(`Hint`,面板只有
|
||||
@@ -154,12 +154,14 @@ fn the_demo_data_is_sane() {
|
||||
/// (复审 P2-1 实测;main 那一态是 **7 整行**——不是 8:第 8 条墨迹其实是
|
||||
/// `Pick a version, then install` 那句 hint,横向范围对不上版本号。r2 修回 7 整行)。
|
||||
///
|
||||
/// 现在的判据:`Chips` **且**面板真占高度(`Options` / `Install`)才 `Shared`;
|
||||
/// `Hint` 在任何档位都 `Pinned`。
|
||||
/// 现在的判据(M227 重写,旧文档只写了 M125 那一条条件 —— r8 复审 improve finding):
|
||||
/// ① `Chips` **且**面板真占高度(`Options` / `Install`)⇒ `Narrow`;
|
||||
/// ② **任何档位**的 `Options` 只要带加载器版本列表 ⇒ `Shared`(三栏档只走这条);
|
||||
/// ③ 其余(含 `Hint`)⇒ `Pinned`。
|
||||
///
|
||||
/// 抓得住:①chips 档改回「只判档位」(`Hint` 跟着对半分 ⇒ 列表掉到 4 行,像素守门
|
||||
/// `ready::a_ready_shot_keeps_the_whole_visible_list` 立刻红);②三栏档也改成 `Shared`
|
||||
/// (1180 下选项面板被切成一半,`an_options_shot_…` 会红)。
|
||||
/// 抓得住:①chips 档改回「Pinned」(面板把列表压成缝 ⇒ 像素守门
|
||||
/// `ready::a_ready_shot_keeps_the_whole_visible_list` / `chips::a_chips_tier_shot_…` 立刻红);
|
||||
/// ②三栏档也改成 `Narrow`(1180 下钉死区少了菜单与说明,`an_options_shot_…` 的量测会红)。
|
||||
/// 抓不住:**实际分到多少像素**(`iced` 的 `Element` 没有几何内省,那只能出图量)。
|
||||
#[test]
|
||||
fn the_chips_tier_shares_the_height_only_when_the_panel_takes_room() {
|
||||
@@ -207,8 +209,8 @@ fn the_chips_tier_shares_the_height_only_when_the_panel_takes_room() {
|
||||
|
||||
assert_eq!(
|
||||
TailShare::of(VersionRailTier::Chips, &panel_state(&options)),
|
||||
TailShare::Shared,
|
||||
"chips 档 + 选项区展开:对半分(列表 4 整行、面板自己可滚)"
|
||||
TailShare::Narrow,
|
||||
"chips 档 + 选项区展开:窄档预算(面板只钉实例名,列表 3 整行)"
|
||||
);
|
||||
assert_eq!(
|
||||
TailShare::of(VersionRailTier::Chips, &panel_state(&hint)),
|
||||
|
||||
Reference in new issue
Block a user