Files
tuiche/lib/pages/sleep_report/chart/DataShowWidget.dart
2025-11-14 15:12:35 +08:00

110 lines
3.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:vbvs_app/common/util/FitTool.dart';
class DataShowWidget extends StatefulWidget {
final Widget widget1; // 第一个传入的 widget
final Widget widget2; // 第二个传入的 widget
final Widget widget3; // 第三个传入的 widget
final Widget widget4; // 第四个传入的 widget
final MainAxisAlignment alignment; // 控制 Row 的对齐方式
const DataShowWidget({
super.key,
required this.widget1,
required this.widget2,
required this.widget3,
required this.widget4,
this.alignment = MainAxisAlignment.start, // 默认左对齐
});
@override
State<DataShowWidget> createState() => _DataShowWidgetState();
}
class _DataShowWidgetState extends State<DataShowWidget> {
@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.21, // 固定宽度
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.29, // 固定宽度
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.12, // 固定宽度
// decoration: BoxDecoration(),
// child: Align(
// alignment: widget.alignment == MainAxisAlignment.start
// ? Alignment.centerLeft
// : widget.alignment == MainAxisAlignment.center
// ? Alignment.center
// : Alignment.centerRight, // 同样设置对齐
// child: widget.widget4, // 显示传入的 widget4
// ),
// ),
],
),
),
);
}
}