calcPrecedingScrollExtent method

double? calcPrecedingScrollExtent({
  1. required GlobalKey<State<StatefulWidget>> nestedScrollViewKey,
  2. required BuildContext sliverContext,
})

Implementation

double? calcPrecedingScrollExtent({
  required GlobalKey nestedScrollViewKey,
  required BuildContext sliverContext,
}) {
  double precedingScrollExtent = 0;
  var _obj = ObserverUtils.findRenderObject(sliverContext);
  if (_obj is! RenderSliverMultiBoxAdaptor) return null;
  precedingScrollExtent = _obj.constraints.precedingScrollExtent;

  // Get SliverFillRemaining
  final remainingSliverContext = fetchRemainingSliverContext(
    nestedScrollViewKey: nestedScrollViewKey,
  );
  if (remainingSliverContext == null || remainingSliverRenderObj == null) {
    return null;
  }
  precedingScrollExtent +=
      remainingSliverRenderObj?.constraints.precedingScrollExtent ?? 0;
  return precedingScrollExtent;
}