calcPersistentHeaderExtent static method

double calcPersistentHeaderExtent({
  1. GlobalKey<State<StatefulWidget>>? key,
  2. BuildContext? context,
  3. required double offset,
})

Calculate current extent of RenderSliverPersistentHeader base on target layout offset. Such as SliverAppBar

You must pass either key or context

Implementation

static double calcPersistentHeaderExtent({
  GlobalKey? key,
  BuildContext? context,
  required double offset,
}) {
  assert(key != null || context != null);
  final ctx = key?.currentContext ?? context;
  final obj = ObserverUtils.findRenderObject(ctx);
  if (obj is! RenderSliverPersistentHeader) return 0;
  final maxExtent = obj.maxExtent;
  final minExtent = obj.minExtent;
  final currentExtent = math.max(minExtent, maxExtent - offset);
  return currentExtent;
}