calculateAlignment method

double? calculateAlignment({
  1. required int index,
  2. required AntdEdge viewportAlign,
  3. required AntdEdge itemAlign,
  4. required bool isHorizontal,
  5. required double viewportSize,
})

Implementation

double? calculateAlignment({
  required int index,
  required AntdEdge viewportAlign,
  required AntdEdge itemAlign,
  required bool isHorizontal,
  required double viewportSize,
}) {
  final itemLength = getLength(index, isHorizontal);
  if (itemLength == null) return null;

  switch (viewportAlign) {
    case AntdEdge.start:
      return itemAlign == AntdEdge.start
          ? 0
          : (itemAlign == AntdEdge.center ? itemLength / 2 : itemLength);
    case AntdEdge.center:
      return itemAlign == AntdEdge.start
          ? -viewportSize / 2
          : (itemAlign == AntdEdge.center
              ? -(viewportSize - itemLength) / 2
              : -viewportSize / 2 + itemLength);
    case AntdEdge.end:
      return itemAlign == AntdEdge.start
          ? -viewportSize
          : (itemAlign == AntdEdge.center
              ? -viewportSize + itemLength / 2
              : -viewportSize + itemLength);
  }
}