getWindowOffset method

double? getWindowOffset({
  1. required int index,
  2. required AntdEdge viewportAlign,
  3. double offset = 0,
})

Implementation

double? getWindowOffset(
    {required int index,
    required AntdEdge viewportAlign,
    double offset = 0}) {
  if (effectiveViewportSize == null) {
    return null;
  }

  double? baseOffset = _itemRegistry.calculateTopOffset(
    index: index,
    viewportAlign: viewportAlign,
    isHorizontal: isHorizontal,
    viewportSize: effectiveViewportSize!,
  );

  if (baseOffset == null) {
    return null;
  }

  var scrollDirection = position.axisDirection;
  if (scrollDirection == AxisDirection.left) {
    if (offset <= 0) {
      return baseOffset;
    }
    if (offset >= position.maxScrollExtent) {
      return baseOffset + position.maxScrollExtent;
    }
    return baseOffset + offset;
  }

  if (offset <= 0) {
    return baseOffset;
  }
  if (offset >= position.maxScrollExtent) {
    return baseOffset - position.maxScrollExtent;
  }
  return baseOffset - offset;
}