PlutoResize<T> constructor

PlutoResize<T>({
  1. required double offset,
  2. required List<T> items,
  3. required bool isMainItem(
    1. T item
    ),
  4. required double getItemSize(
    1. T item
    ),
  5. required double getItemMinSize(
    1. T item
    ),
  6. required void setItemSize(
    1. T item,
    2. double size
    ),
})

Implementation

PlutoResize({
  required this.offset,
  required this.items,
  required this.isMainItem,
  required this.getItemSize,
  required this.getItemMinSize,
  required this.setItemSize,
}) {
  final index = items.indexWhere((e) => isMainItem(e));
  final positiveIndex = index + 1;
  final length = items.length;

  _mainItem = items[index];

  _positiveSiblings = positiveIndex == length
      ? const Iterable.empty()
      : items.getRange(positiveIndex, length);

  _negativeSiblings = items.getRange(0, index);
}