seperated_column.dart 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import 'package:flutter/material.dart';
  2. typedef SeparatorBuilder = Widget Function();
  3. class SeparatedColumn extends StatelessWidget {
  4. final List<Widget> children;
  5. final SeparatorBuilder? separatorBuilder;
  6. final MainAxisAlignment mainAxisAlignment;
  7. final CrossAxisAlignment crossAxisAlignment;
  8. final MainAxisSize mainAxisSize;
  9. final TextBaseline? textBaseline;
  10. final TextDirection? textDirection;
  11. final VerticalDirection verticalDirection;
  12. const SeparatedColumn({
  13. Key? key,
  14. required this.children,
  15. this.separatorBuilder,
  16. this.mainAxisAlignment = MainAxisAlignment.start,
  17. this.crossAxisAlignment = CrossAxisAlignment.center,
  18. this.mainAxisSize = MainAxisSize.max,
  19. this.verticalDirection = VerticalDirection.down,
  20. this.textBaseline,
  21. this.textDirection,
  22. }) : super(key: key);
  23. @override
  24. Widget build(BuildContext context) {
  25. var c = children.toList();
  26. for (var i = c.length; i-- > 0;) {
  27. if (i > 0 && separatorBuilder != null) c.insert(i, separatorBuilder!());
  28. }
  29. return Column(
  30. children: c,
  31. mainAxisAlignment: mainAxisAlignment,
  32. crossAxisAlignment: crossAxisAlignment,
  33. mainAxisSize: mainAxisSize,
  34. textBaseline: textBaseline,
  35. textDirection: textDirection,
  36. verticalDirection: verticalDirection,
  37. );
  38. }
  39. }