From fd9df5d065454ccb616d77755c643e6a55edbf4d Mon Sep 17 00:00:00 2001 From: hailin Date: Tue, 23 Dec 2025 03:25:33 -0800 Subject: [PATCH] =?UTF-8?q?fix(mobile-app):=20=E4=BF=AE=E5=A4=8D=E7=81=AB?= =?UTF-8?q?=E6=9F=B4=E4=BA=BA=E8=B6=85=E5=87=BA=E5=B1=8F=E5=B9=95=E8=BE=B9?= =?UTF-8?q?=E7=95=8C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重新计算火柴人水平位置,预留终点区域和火柴人宽度 - 使用 clamp 确保火柴人不会超出右边界 - 当进度达到100%时,火柴人停在终点红旗旁边 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../presentation/widgets/stickman_race_widget.dart | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frontend/mobile-app/lib/features/authorization/presentation/widgets/stickman_race_widget.dart b/frontend/mobile-app/lib/features/authorization/presentation/widgets/stickman_race_widget.dart index a5620a40..26fb0514 100644 --- a/frontend/mobile-app/lib/features/authorization/presentation/widgets/stickman_race_widget.dart +++ b/frontend/mobile-app/lib/features/authorization/presentation/widgets/stickman_race_widget.dart @@ -238,8 +238,13 @@ class _StickmanRaceWidgetState extends State // 添加上下弹跳效果 final bounce = _bounceController.value * 3; + // 计算可用宽度:容器宽度 - 左边距(20) - 右边距(终点区域80) - 火柴人宽度(60) + final containerWidth = MediaQuery.of(context).size.width - 32; // 减去容器外边距 + final availableWidth = containerWidth - 20 - 80 - 60; // 起点边距 - 终点区域 - 火柴人宽度 + final leftPosition = 20 + availableWidth * horizontalProgress; + return Positioned( - left: 20 + (MediaQuery.of(context).size.width - 120) * horizontalProgress, + left: leftPosition.clamp(20.0, containerWidth - 80), // 确保不超出右边界 top: verticalPosition - bounce, child: Column( mainAxisSize: MainAxisSize.min,