周报月报卡片样式
This commit is contained in:
109
lib/pages/sleep_report/chart/weekDataShowWidget.dart
Normal file
109
lib/pages/sleep_report/chart/weekDataShowWidget.dart
Normal file
@@ -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<Weekdatashowwidget> createState() => _WeekdatashowwidgetState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _WeekdatashowwidgetState extends State<Weekdatashowwidget> {
|
||||||
|
@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
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,11 +6,11 @@ import 'package:vbvs_app/common/util/FitTool.dart';
|
|||||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||||
import 'package:vbvs_app/component/tool/ClickableContainer.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/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:EasyDartModule/EasyDartModule.dart' as es;
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
|
import 'package:vbvs_app/pages/sleep_report/chart/weekDataShowWidget.dart';
|
||||||
|
|
||||||
class IndicatorCompareCard extends StatelessWidget {
|
class IndicatorCompareCard extends StatelessWidget {
|
||||||
final String title;
|
final String title;
|
||||||
@@ -91,7 +91,7 @@ class IndicatorCompareCard extends StatelessWidget {
|
|||||||
SizedBox(height: spacing.rpx),
|
SizedBox(height: spacing.rpx),
|
||||||
|
|
||||||
/// 表头
|
/// 表头
|
||||||
DataShowWidget(
|
Weekdatashowwidget(
|
||||||
alignment: MainAxisAlignment.center,
|
alignment: MainAxisAlignment.center,
|
||||||
widget1: _buildHeader(headers, 0),
|
widget1: _buildHeader(headers, 0),
|
||||||
widget2: _buildHeader(headers, 1),
|
widget2: _buildHeader(headers, 1),
|
||||||
@@ -102,7 +102,7 @@ class IndicatorCompareCard extends StatelessWidget {
|
|||||||
/// 数据行
|
/// 数据行
|
||||||
Column(
|
Column(
|
||||||
children: rows.map((row) {
|
children: rows.map((row) {
|
||||||
return DataShowWidget(
|
return Weekdatashowwidget(
|
||||||
alignment: MainAxisAlignment.center,
|
alignment: MainAxisAlignment.center,
|
||||||
widget1: row[0],
|
widget1: row[0],
|
||||||
widget2: row[1],
|
widget2: row[1],
|
||||||
|
|||||||
Reference in New Issue
Block a user