performListDrag method

void performListDrag(
  1. double dragDy
)
override

Implementation

void performListDrag(double dragDy) {
  try {
    if (_scrollController.hasClients) {
      final currentScrollOffset = _scrollController.offset;
      double allowedOffset = _allowedDragDistance(
          currentScrollOffset + _adjustedTopOffset,
          dragDy * widget.dragSpeedMultiplier);
      if (allowedOffset != 0.0) {
        _scrollController.jumpTo(currentScrollOffset + allowedOffset);

        final scrollPixels =
            _scrollController.offset - listPadding + _adjustedTopOffset;
        final selectedItemIndex = _getCurrentListElementIndex(scrollPixels);
        lastSelectedItem = selectedItemIndex;

        _performScaleTransformation(scrollPixels, selectedItemIndex);
      }
    }
  } catch (e) {
    print(e);
  }
}