items<T> static method

PlutoAutoSize items<T>({
  1. required double maxSize,
  2. required Iterable<T> items,
  3. required bool isSuppressed(
    1. T
    ),
  4. required double getItemSize(
    1. T
    ),
  5. required double getItemMinSize(
    1. T
    ),
  6. required void setItemSize(
    1. T,
    2. double
    ),
  7. required PlutoAutoSizeMode mode,
})

Implementation

static PlutoAutoSize items<T>({
  required double maxSize,
  required Iterable<T> items,
  required bool Function(T) isSuppressed,
  required double Function(T) getItemSize,
  required double Function(T) getItemMinSize,
  required void Function(T, double) setItemSize,
  required PlutoAutoSizeMode mode,
}) {
  switch (mode) {
    case PlutoAutoSizeMode.equal:
      return PlutoAutoSizeEqual<T>(
        maxSize: maxSize,
        items: items,
        isSuppressedItem: isSuppressed,
        getItemSize: getItemSize,
        getItemMinSize: getItemMinSize,
        setItemSize: setItemSize,
      );
    case PlutoAutoSizeMode.scale:
      return PlutoAutoSizeScale<T>(
        maxSize: maxSize,
        items: items,
        isSuppressedItem: isSuppressed,
        getItemSize: getItemSize,
        getItemMinSize: getItemMinSize,
        setItemSize: setItemSize,
      );
    case PlutoAutoSizeMode.none:
      throw Exception('Mode cannot be called with PlutoAutoSizeMode.none.');
  }
}