import 'package:flutter/material.dart'; import 'dart:math'; import 'helper.dart'; class ColumnExtension extends StatelessWidget { final Function(BuildContext, int) _itemBuilder; final int _itemCount; final MainAxisAlignment _mainAxisAlignment; ColumnExtension.builder( {required itemBuilder, required itemCount, mainAxisAlignment}) : _itemBuilder = itemBuilder, _itemCount = itemCount, _mainAxisAlignment = mainAxisAlignment ?? MainAxisAlignment.start; ColumnExtension.separated( {required itemBuilder, required separatorBuilder, required int itemCount, mainAxisAlignment}) : _itemBuilder = getSeparatedItemBuilder(itemBuilder, separatorBuilder), _itemCount = max(0, itemCount * 2 - 1), _mainAxisAlignment = mainAxisAlignment; @override Widget build(BuildContext context) => Column( mainAxisAlignment: _mainAxisAlignment, children: List.generate(_itemCount, (i) => _itemBuilder(context, i)), ); }