|
- 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,
- );
- },
- );
- }
- }
|