import 'package:ansu_ui/painters/circle_chart_painter.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; class CircleChart extends StatelessWidget { final double? size; ///角度 final double aspectRato; ///底部圆圈的宽度 final double? underStrokeWidth; ///弧的宽度 final double? aboveStrokeWidth; ///弧的颜色 final Color color; ///圆圈中间显示的组件 final Widget core; const CircleChart( {Key? key, this.size, required this.aspectRato, this.underStrokeWidth, this.aboveStrokeWidth, required this.color, required this.core}) : super(key: key); double get customSize => size ?? 100.w; double get customUnderWidth => underStrokeWidth ?? 5.w; double get customAboveWidth => aboveStrokeWidth ?? 15.w; @override Widget build(BuildContext context) { return SizedBox( width: customSize, height: customSize, child: CustomPaint( painter: CircleChartPainter( underStrokeWidth: customUnderWidth, aboveStrokeWidth: customAboveWidth, radius: aspectRato, aboveColor: color), child: Align( alignment: Alignment.center, child: core, )), ); } }