110 lines
3.8 KiB
Dart
110 lines
3.8 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.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.25, // 固定宽度
|
|
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.1, // 固定宽度
|
|
decoration: BoxDecoration(),
|
|
child: Align(
|
|
alignment: widget.alignment == MainAxisAlignment.start
|
|
? Alignment.centerLeft
|
|
: widget.alignment == MainAxisAlignment.center
|
|
? Alignment.center
|
|
: Alignment.centerRight, // 同样设置对齐
|
|
child: widget.widget4, // 显示传入的 widget4
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|