fix(app-iced): 版本行节距/列表 chrome 标定重算(44/97)+ 中性说明挪到版本菜单之后
三审给了独立量测,两处都按它的数字收敛: 1. `ROW_PITCH` 278/6=46.33 → **44.0**(278 里含列表与面板之间的 8px `Space::X2`); `LIST_CHROME` 93 → **97**(列顶 156 → 列表顶 253)。1180×760 分隔线 492 → **481**、 列表视口 **220px = 5 整行**;1180×900 加测 = 308px = 7 整行,三审报的 900 高残影不复发。 2. S7 钉页脚引入的新问题:面板上半块的滚动切点压在字形上(宽窗切「加载器版本」标签上沿、 窄窗把 chips 切成 4px 条)。把中性说明从菜单**之前**移到**之后**——它两行高,排前面正是把 唯一的加载器专属控件顶出首屏的元凶。 顺带纠正一处文档:面板结构不是「头部 + 可滚上半 + 钉页脚」,head(版本 id + 安装按钮)是上半块 的第一个子项、**安装按钮也在滚动区**,只有实例名是钉死的。
This commit is contained in:
1 parent
954281d71a
commit
0ca28d24ff
2 files changed
+21
-16
No files matched your search
@@ -108,16 +108,6 @@ pub(crate) fn section<'a>(
|
||||
|
||||
// 中性说明(M222):只解释这一页能装到哪一层,不套错误色、不影响确认键。
|
||||
// 换行由 iced 的文本布局负责,长句不会横向溢出;但**视觉验收仍需截图确认**(D30)。
|
||||
if let Some(note) = &options.note {
|
||||
body = body.push(frame::text_role(
|
||||
ui,
|
||||
TypeRole::BodySmall,
|
||||
false,
|
||||
note.as_str(),
|
||||
ui.color(Role::OnSurfaceVariant),
|
||||
));
|
||||
}
|
||||
|
||||
// 「加载器版本」这一段只在**真该有列表**时出现:原版没有、静态不兼容没有(原因在下面那行)、
|
||||
// 取不到也没有(同样在原因行)。留一个空标题只会让人以为界面缺了一块。
|
||||
if show_versions(options) {
|
||||
@@ -131,6 +121,19 @@ pub(crate) fn section<'a>(
|
||||
body = body.push(version_list(ui, catalog, options));
|
||||
}
|
||||
|
||||
// 中性说明排在**版本菜单之后**(D30 三审 S7-clip):说明两行高,排在菜单前面会把
|
||||
// 「加载器版本」这个本页唯一的加载器专属控件顶出首屏,而面板上半块是滚动区,切点会落在
|
||||
// 字形上。挪到菜单后面之后 1180×760 首屏能装下 head + chips + 标签 + 菜单,切点不再切字。
|
||||
if let Some(note) = &options.note {
|
||||
body = body.push(frame::text_role(
|
||||
ui,
|
||||
TypeRole::BodySmall,
|
||||
false,
|
||||
note.as_str(),
|
||||
ui.color(Role::OnSurfaceVariant),
|
||||
));
|
||||
}
|
||||
|
||||
if let Some(problem) = &options.problem {
|
||||
body = body.push(frame::text_role(
|
||||
ui,
|
||||
|
||||
@@ -58,18 +58,20 @@ impl TailShare {
|
||||
}
|
||||
}
|
||||
|
||||
/// 版本行的**实测节距**(D30:`04` 图列表 278px / 6 行 = 46.33px)。
|
||||
/// 版本行的**实测节距**(D30 三审:`04` 图行内下载图标的行首 265/309/353/397/441/485,
|
||||
/// 节距恰 **44.0**;首行选中高亮矩形 253–296 也是 44px)。
|
||||
///
|
||||
/// 列表是 `Fill + scrollable` 时,视口高度不是节距整数倍就会切在某一行中间——D30 r2 实测
|
||||
/// `01` 是 245px(5.3 行),英文态露出 6px 竖干、中文态露出「预览版」上半截。三栏档的
|
||||
/// 「列表与面板对半分」那一档现在按整行取高([`whole_rows`]),底缘落在行边界上。
|
||||
pub(crate) const ROW_PITCH: f32 = 278.0 / 6.0;
|
||||
pub(crate) const ROW_PITCH: f32 = 44.0;
|
||||
|
||||
/// 列表列内部、列表以外要扣掉的固定占位(搜索条 + 分隔线 + 表头 + 列间距)。
|
||||
/// 列表以外、列内要扣掉的固定占位(**列顶 156 → 列表顶 253**,D30 三审实测 = 97)。
|
||||
///
|
||||
/// D30 标定:1180×760 的正文列高([`frame::body_height`](crate::pages::frame::body_height))
|
||||
/// 扣掉它再对半分,正好是 5 整行。**改搜索条 / 表头高度时要同步这个数。**
|
||||
pub(crate) const LIST_CHROME: f32 = 93.0;
|
||||
/// 1180×760:正文列 580 ⇒ floor((580−97)/2 / 44) × 44 = **220px = 5 整行**,分隔线落在 481。
|
||||
/// 1180×900:floor((720−97)/2 / 44) × 44 = **308px = 7 整行**(三审在 900 高实测过:旧标定
|
||||
/// 会在 y529–530 复发残影,新标定不复发)。**改搜索条 / 表头高度时要同步这个数。**
|
||||
pub(crate) const LIST_CHROME: f32 = 97.0;
|
||||
|
||||
/// 正文列高度 → 列表视口的**整行高度**(只给三栏档的 Shared 分支用)。
|
||||
#[must_use]
|
||||
|
||||
Reference in new issue
Block a user