import 'package:flutter/material.dart'; /// 虚线绘制 class DottedLine extends StatelessWidget { final double height; final double width; final Color color; final Axis direction; const DottedLine({ this.height = 1, this.width = 10, this.color = Colors.black, this.direction = Axis.horizontal, }); @override Widget build(BuildContext context) { return LayoutBuilder( builder: (BuildContext context, BoxConstraints constraints) { final boxWidth = direction == Axis.horizontal ? constraints.constrainWidth() : constraints.constrainHeight(); final dashWidth = width; final dashHeight = height; final dashCount = (boxWidth / (2 * dashWidth)).floor(); return Flex( children: List.generate(dashCount, (_) { return SizedBox( width: direction == Axis.horizontal ? dashWidth : dashHeight, height: direction == Axis.horizontal ? dashHeight : dashWidth, child: DecoratedBox( decoration: BoxDecoration(color: color), ), ); }), mainAxisAlignment: MainAxisAlignment.spaceBetween, direction: direction, ); }, ); } }