import 'package:flutter/material.dart'; import 'package:vbvs_app/common/util/FitTool.dart'; class VerticalBarList extends StatelessWidget { final List> showLabel; final double maxBarHeight; final double barWidth; const VerticalBarList({ super.key, required this.showLabel, this.maxBarHeight = 100.0, // 柱子的最大高度 this.barWidth = 20.0, // 每根柱子的宽度 }); @override Widget build(BuildContext context) { return Row( crossAxisAlignment: CrossAxisAlignment.end, children: showLabel.map((item) { final percent = item['percent'] ?? 0; final color = item['color'] ?? Colors.grey; final name = item['name'] ?? ''; final barHeight = maxBarHeight * (percent / 100.0); return Padding( padding: EdgeInsets.symmetric(horizontal: 8.rpx), child: Column( mainAxisSize: MainAxisSize.min, children: [ // 柱子 Container( width: barWidth.rpx, height: barHeight.rpx, decoration: BoxDecoration( color: color, borderRadius: BorderRadius.circular(4.rpx), ), ), SizedBox(height: 8.rpx), // 文字竖排 Text( name, style: TextStyle( fontSize: 24.rpx, color: Colors.white, ), textAlign: TextAlign.center, ), ], ), ); }).toList(), ); } }