From 63cf52b9c17a358612b65206b5572b9a3a43d5f5 Mon Sep 17 00:00:00 2001 From: hailin Date: Tue, 23 Dec 2025 03:27:43 -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=E5=AE=B9=E5=99=A8=E5=AE=BD=E5=BA=A6=E4=B8=8E?= =?UTF-8?q?=E5=85=B6=E4=BB=96=E7=BB=84=E4=BB=B6=E4=B8=8D=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除火柴人容器的水平margin,与页面其他内容保持一致 - 重新计算火柴人位置,正确处理容器边距 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../presentation/widgets/stickman_race_widget.dart | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) 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 26fb0514..77503ad5 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 @@ -82,7 +82,7 @@ class _StickmanRaceWidgetState extends State } return Container( - margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + margin: const EdgeInsets.only(bottom: 16), padding: const EdgeInsets.all(16), decoration: BoxDecoration( color: const Color(0x80FFFFFF), @@ -238,13 +238,14 @@ 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; + // 计算可用宽度:屏幕宽度 - 页面padding(32) - 容器padding(32) - 终点区域(60) - 火柴人宽度(60) + final screenWidth = MediaQuery.of(context).size.width; + final containerWidth = screenWidth - 32 - 32; // 页面padding + 容器padding + final availableWidth = containerWidth - 60 - 60; // 终点区域 - 火柴人宽度 + final leftPosition = availableWidth * horizontalProgress; return Positioned( - left: leftPosition.clamp(20.0, containerWidth - 80), // 确保不超出右边界 + left: leftPosition.clamp(0.0, availableWidth), // 确保不超出右边界 top: verticalPosition - bounce, child: Column( mainAxisSize: MainAxisSize.min,