observeSwitchShrinkWrap method
dynamic
observeSwitchShrinkWrap()
Implementation
observeSwitchShrinkWrap() {
ambiguate(WidgetsBinding.instance)?.addPostFrameCallback((_) {
final ctx = observerController.fetchSliverContext();
if (ctx == null) return;
final obj = ObserverUtils.findRenderObject(ctx);
if (obj is! RenderSliver) return;
final constraints = ObserverUtils.sliverConstraints(obj);
if (constraints == null) return;
final viewportMainAxisExtent = constraints.viewportMainAxisExtent;
final scrollExtent = obj.geometry?.scrollExtent ?? 0;
if (viewportMainAxisExtent >= scrollExtent) {
if (innerIsShrinkWrap) return;
innerIsShrinkWrap = true;
observerController.reattach();
toRebuildScrollViewCallback?.call();
} else {
if (!innerIsShrinkWrap) return;
innerIsShrinkWrap = false;
observerController.reattach();
toRebuildScrollViewCallback?.call();
}
});
}