31 lines
1016 B
Dart
31 lines
1016 B
Dart
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<Widget>.generate(_itemCount, (i) => _itemBuilder(context, i)),
|
|
);
|
|
} |