From 6af1078ca5359b8135f892538397ba5502ec4e6c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B4=94=E9=B2=81=E6=AD=A3?= <13780741225@163.com>
Date: Fri, 11 Sep 2026 09:52:09 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E9=A6=96=E9=A1=B5=E4=B8=89=E4=BB=B6?=
=?UTF-8?q?=E5=A5=97=E5=AD=97=E5=8F=B7=2030sp=20=E6=94=B9=2026sp=EF=BC=8Cl?=
=?UTF-8?q?abel=20=E5=90=AB=E5=8D=95=E4=BD=8D=E9=81=BF=E5=85=8D=E7=AA=84?=
=?UTF-8?q?=E6=A0=BC=E9=87=8C=E6=8D=A2=E8=A1=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
第一版 value 行 + 单位同行 + 30sp 字号在窄格里换行成两截:「8,426」一行 + 「步」一行,「327」+「千」+「卡」也各换一行,「47」+「分钟」同样问题 —— 整张图被切成 6 段,视觉上不像三件套、像六个数。
改法:label 含单位(卡路里(千卡)、活动(分钟)),value 行只摆数字,字号降到 26sp —— 三件套格子约 110dp 宽,26sp + 5 位数字 100,000 装得下,再留余量给目标那行小字。
KDoc 注释一并更新,标注 M1 验证阶段肉眼发现的坑。
---
.../ringhealth/feature/home/HomeScreen.kt | 18 ++++++++++--------
app/src/main/res/values/strings.xml | 7 ++-----
2 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/app/src/main/java/com/placeholder/ringhealth/feature/home/HomeScreen.kt b/app/src/main/java/com/placeholder/ringhealth/feature/home/HomeScreen.kt
index 41a6f23..4694152 100644
--- a/app/src/main/java/com/placeholder/ringhealth/feature/home/HomeScreen.kt
+++ b/app/src/main/java/com/placeholder/ringhealth/feature/home/HomeScreen.kt
@@ -232,8 +232,10 @@ private fun DeviceStrip(device: RingDeviceState?, modifier: Modifier = Modifier)
* - 步数下挂目标("目标 10,000"),目标本身仍是用户对照自己的尺子
* - 步数一格整格可点进详情;卡路里/活动时长一格整格也点了能进(暂未挂路由,行为同环外区域)
*
- * 数值字号比详情页的 `MetricValueStyle`(44sp)小一档 —— 三件套横向排成一行,
- * 同样的 44sp 会让六位步数("100,000")撑爆格子;30sp 仍属「一眼能读」但不至于抢走下方指标卡的视觉重量。
+ * **第一版的「value + 单位同行」写法装不下**:30sp 字号下「8,426 步」「327 千卡」「47 分钟」
+ * 三件套单元格里都会换行 —— 视觉上「8,426」「步」分两行变成「数值」「单位」两截,反而像丢了内容。
+ * 改为「label 表达单位 + value 纯数字」:label 写成「步数 / 卡路里(千卡)/ 活动(分钟)」,
+ * 把单位塞进 label,value 行只摆数字。
*/
@Composable
private fun TodaySummaryCard(summary: HealthSummary, onOpenSteps: () -> Unit, modifier: Modifier = Modifier) {
@@ -242,7 +244,7 @@ private fun TodaySummaryCard(summary: HealthSummary, onOpenSteps: () -> Unit, mo
SummaryCell(
modifier = Modifier.weight(1f),
label = stringResource(R.string.home_summary_steps_label),
- value = stringResource(R.string.home_summary_steps_value, formatSteps(summary.steps)),
+ value = formatSteps(summary.steps),
subline = stringResource(R.string.home_summary_steps_goal, formatSteps(summary.stepGoal)),
onClick = onOpenSteps,
)
@@ -250,7 +252,7 @@ private fun TodaySummaryCard(summary: HealthSummary, onOpenSteps: () -> Unit, mo
SummaryCell(
modifier = Modifier.weight(1f),
label = stringResource(R.string.home_summary_calories_label),
- value = stringResource(R.string.home_summary_calories_value, formatCalories(summary.calories)),
+ value = formatCalories(summary.calories),
subline = null,
onClick = null,
)
@@ -258,7 +260,7 @@ private fun TodaySummaryCard(summary: HealthSummary, onOpenSteps: () -> Unit, mo
SummaryCell(
modifier = Modifier.weight(1f),
label = stringResource(R.string.home_summary_active_label),
- value = stringResource(R.string.home_summary_active_value, summary.activeMinutes),
+ value = formatActiveMinutes(summary.activeMinutes),
subline = null,
onClick = null,
)
@@ -287,7 +289,7 @@ private fun RowScope.SummaryDivider() {
private val HomeSummaryDivider = androidx.compose.ui.graphics.Color(0xFFE2E5EB)
/**
- * 三件套的单格:上标签、下大数字 + 单位、再下一行小字(步数那一格用,挂目标)。
+ * 三件套的单格:上标签(含单位)、下大数字、再下一行小字(步数那一格用,挂目标)。
*
* `onClick` 为 null 时整格不响应点击(卡路里/活动时长暂未挂详情路由);
* 不为 null 时整格可点(步数一格进步数详情)。
@@ -315,9 +317,9 @@ private fun SummaryCell(
}
}
-/** 三件套单格内的数值字号:30sp + tnum,宽字符数字不会跳。 */
+/** 三件套单格内的数值字号:26sp + tnum;30sp 在三等分格里换行(首版踩过这个坑)。 */
private val TodaySummaryValueStyle = TextStyle(
- fontSize = 30.sp,
+ fontSize = 26.sp,
fontWeight = FontWeight.Bold,
letterSpacing = (-1).sp,
color = TextPrimary,
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 34477e3..b278667 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -165,12 +165,9 @@
今日数据
步数
- %1$s 步
目标 %1$s
- 卡路里
- %1$s 千卡
- 活动时长
- %1$d 分钟
+ 卡路里(千卡)
+ 活动(分钟)
户外跑步