41 lines
1.1 KiB
Dart
41 lines
1.1 KiB
Dart
import 'package:wonders/common_libs.dart';
|
|
|
|
class DashedLine extends StatelessWidget {
|
|
const DashedLine({Key? key, this.vertical = false}) : super(key: key);
|
|
final bool vertical;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return SizedBox(
|
|
width: vertical ? 2 : double.infinity,
|
|
height: vertical ? double.infinity : 2,
|
|
child: CustomPaint(painter: _DashedLinePainter(vertical)),
|
|
);
|
|
}
|
|
}
|
|
|
|
class _DashedLinePainter extends CustomPainter {
|
|
_DashedLinePainter(this.vertical);
|
|
final bool vertical;
|
|
|
|
@override
|
|
void paint(Canvas canvas, Size size) {
|
|
double dashPx = 3, gapPx = 3, pos = 0;
|
|
final paint = Paint()..color = Colors.white;
|
|
if (vertical) {
|
|
while (pos < size.height) {
|
|
canvas.drawLine(Offset(0, pos), Offset(0, pos + dashPx), paint);
|
|
pos += dashPx + gapPx;
|
|
}
|
|
} else {
|
|
while (pos < size.width) {
|
|
canvas.drawLine(Offset(pos, 0), Offset(pos + dashPx, 0), paint);
|
|
pos += dashPx + gapPx;
|
|
}
|
|
}
|
|
}
|
|
|
|
@override
|
|
bool shouldRepaint(CustomPainter oldDelegate) => false;
|
|
}
|