From db787bc64c1dea2e771c584a0517e2c2cb8e0525 Mon Sep 17 00:00:00 2001 From: czz <862977248@qq.com> Date: Thu, 24 Jul 2025 19:16:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=A8=E6=8A=A5=E6=9C=88=E6=8A=A5=E5=8D=A1?= =?UTF-8?q?=E7=89=87=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/weekDataShowWidget.dart | 109 ++++++++++++++++++ .../component/TrendDataTextPage.dart | 8 +- 2 files changed, 113 insertions(+), 4 deletions(-) create mode 100644 lib/pages/sleep_report/chart/weekDataShowWidget.dart diff --git a/lib/pages/sleep_report/chart/weekDataShowWidget.dart b/lib/pages/sleep_report/chart/weekDataShowWidget.dart new file mode 100644 index 0000000..d3fc2b3 --- /dev/null +++ b/lib/pages/sleep_report/chart/weekDataShowWidget.dart @@ -0,0 +1,109 @@ +import 'package:flutter/material.dart'; +import 'package:vbvs_app/common/util/FitTool.dart'; + +class Weekdatashowwidget extends StatefulWidget { + final Widget widget1; // 第一个传入的 widget + final Widget widget2; // 第二个传入的 widget + final Widget widget3; // 第三个传入的 widget + final Widget widget4; // 第四个传入的 widget + final MainAxisAlignment alignment; // 控制 Row 的对齐方式 + + const Weekdatashowwidget({ + super.key, + required this.widget1, + required this.widget2, + required this.widget3, + required this.widget4, + this.alignment = MainAxisAlignment.start, // 默认左对齐 + }); + + @override + State createState() => _WeekdatashowwidgetState(); +} + +class _WeekdatashowwidgetState extends State { + @override + void setState(VoidCallback callback) { + super.setState(callback); + } + + @override + void initState() { + super.initState(); + } + + @override + void dispose() { + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Container( + width: double.infinity, + height: 66.rpx, + decoration: BoxDecoration(), + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, // 设置横向滚动 + child: Row( + mainAxisAlignment: widget.alignment, // 根据传入的 alignment 控制对齐方式 + children: [ + // 放入传入的 widget1 + Container( + width: MediaQuery.sizeOf(context).width * 0.35, // 固定宽度 + decoration: BoxDecoration(), + child: Align( + alignment: Alignment.centerLeft, + // widget.alignment == MainAxisAlignment.start + // ? Alignment.centerLeft + // : widget.alignment == MainAxisAlignment.center + // ? Alignment.center + // : Alignment.centerRight, // 根据传入的 alignment 设置对齐 + child: widget.widget1, // 显示传入的 widget1 + ), + ), + // 放入传入的 widget2 + Container( + width: MediaQuery.sizeOf(context).width * 0.15, // 固定宽度 + decoration: BoxDecoration(), + child: Align( + alignment: widget.alignment == MainAxisAlignment.start + ? Alignment.centerLeft + : widget.alignment == MainAxisAlignment.center + ? Alignment.center + : Alignment.centerRight, // 同样设置对齐 + child: widget.widget2, // 显示传入的 widget2 + ), + ), + // 放入传入的 widget3 + Container( + width: MediaQuery.sizeOf(context).width * 0.15, // 固定宽度 + decoration: BoxDecoration(), + child: Align( + alignment: widget.alignment == MainAxisAlignment.start + ? Alignment.centerLeft + : widget.alignment == MainAxisAlignment.center + ? Alignment.center + : Alignment.centerRight, // 同样设置对齐 + child: widget.widget3, // 显示传入的 widget3 + ), + ), + // 放入传入的 widget4 + Container( + width: MediaQuery.sizeOf(context).width * 0.25, // 固定宽度 + decoration: BoxDecoration(), + child: Align( + alignment: widget.alignment == MainAxisAlignment.start + ? Alignment.centerLeft + : widget.alignment == MainAxisAlignment.center + ? Alignment.center + : Alignment.centerRight, // 同样设置对齐 + child: widget.widget4, // 显示传入的 widget4 + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/pages/sleep_report/component/TrendDataTextPage.dart b/lib/pages/sleep_report/component/TrendDataTextPage.dart index 379a996..6deab67 100644 --- a/lib/pages/sleep_report/component/TrendDataTextPage.dart +++ b/lib/pages/sleep_report/component/TrendDataTextPage.dart @@ -6,11 +6,11 @@ import 'package:vbvs_app/common/util/FitTool.dart'; import 'package:vbvs_app/common/util/MyUtils.dart'; import 'package:vbvs_app/component/tool/ClickableContainer.dart'; import 'package:vbvs_app/pages/device_bind/componnet/bind_dialog.dart'; -import 'package:vbvs_app/pages/sleep_report/chart/DataShowWidget.dart'; + import 'package:EasyDartModule/EasyDartModule.dart' as es; -import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:vbvs_app/pages/sleep_report/chart/weekDataShowWidget.dart'; class IndicatorCompareCard extends StatelessWidget { final String title; @@ -91,7 +91,7 @@ class IndicatorCompareCard extends StatelessWidget { SizedBox(height: spacing.rpx), /// 表头 - DataShowWidget( + Weekdatashowwidget( alignment: MainAxisAlignment.center, widget1: _buildHeader(headers, 0), widget2: _buildHeader(headers, 1), @@ -102,7 +102,7 @@ class IndicatorCompareCard extends StatelessWidget { /// 数据行 Column( children: rows.map((row) { - return DataShowWidget( + return Weekdatashowwidget( alignment: MainAxisAlignment.center, widget1: row[0], widget2: row[1],