wrap.dart 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import 'package:flutter/widgets.dart';
  2. import '../rendering/wrap.dart';
  3. class WrapWithMainAxisCount extends Wrap {
  4. WrapWithMainAxisCount({
  5. Key? key,
  6. Axis direction = Axis.horizontal,
  7. WrapAlignment alignment = WrapAlignment.start,
  8. double spacing = 0.0,
  9. WrapAlignment runAlignment = WrapAlignment.start,
  10. double runSpacing = 0.0,
  11. WrapCrossAlignment crossAxisAlignment = WrapCrossAlignment.start,
  12. TextDirection? textDirection,
  13. VerticalDirection verticalDirection = VerticalDirection.down,
  14. List<Widget> children = const <Widget>[],
  15. this.minMainAxisCount,
  16. this.maxMainAxisCount,
  17. }) : super(
  18. key: key,
  19. direction: direction,
  20. alignment: alignment,
  21. spacing: spacing,
  22. runAlignment: runAlignment,
  23. runSpacing: runSpacing,
  24. crossAxisAlignment: crossAxisAlignment,
  25. textDirection: textDirection,
  26. verticalDirection: verticalDirection,
  27. children: children);
  28. final int? minMainAxisCount;
  29. final int? maxMainAxisCount;
  30. @override
  31. RenderWrapWithMainAxisCount createRenderObject(BuildContext context) {
  32. return RenderWrapWithMainAxisCount(
  33. direction: direction,
  34. alignment: alignment,
  35. spacing: spacing,
  36. runAlignment: runAlignment,
  37. runSpacing: runSpacing,
  38. crossAxisAlignment: crossAxisAlignment,
  39. textDirection: textDirection ?? Directionality.of(context),
  40. verticalDirection: verticalDirection,
  41. minMainAxisCount: minMainAxisCount,
  42. maxMainAxisCount: maxMainAxisCount);
  43. }
  44. @override
  45. void updateRenderObject(
  46. BuildContext context, RenderWrapWithMainAxisCount renderObject) {
  47. super.updateRenderObject(context, renderObject);
  48. renderObject
  49. ..minMainAxisCount = minMainAxisCount
  50. ..maxMainAxisCount = maxMainAxisCount;
  51. }
  52. }