wrapWidget method

  1. @override
Widget wrapWidget(
  1. BuildContext context,
  2. Widget child,
  3. AnimatedWidgetBuilderData data
)
override

Implementation

@override
Widget wrapWidget(
    BuildContext context, Widget child, AnimatedWidgetBuilderData data) {
  if (data.measuring) return child;
  final originalChild = child;
  final Key? key = child.key != null ? _SaltedValueKey(child.key!) : null;
  if (morphComparator != null) {
    child = MorphTransition(
        duration: morphDuration,
        resizeWidgets: morphResizeWidgets,
        comparator: morphComparator!,
        child: child);
  }
  if (addAnimatedElevation != 0.0 && reorderModel != null) {
    child = Material(
      elevation: data.dragging ? addAnimatedElevation : 0.0,
      child: child,
    );
  }
  if (addFadeTransition) {
    child = FadeTransition(opacity: data.animation, child: child);
  }
  if (addLongPressReorderable && reorderModel != null) {
    child = LongPressReorderable(child: child);
  }
  if (addRepaintBoundaries) {
    child = RepaintBoundary(child: child);
  }
  // if (addSemanticIndexes) {
  //   final int? semanticIndex = semanticIndexCallback(child, index);
  //   if (semanticIndex != null) {
  //     child = IndexedSemantics(
  //         index: semanticIndex + semanticIndexOffset, child: child);
  //   }
  // }
  if (addAutomaticKeepAlives) {
    child = AutomaticKeepAlive(child: child);
  }
  child = KeyedSubtree(key: key, child: child);
  if (kDebugMode) {
    child = _DebugWidget(child, () => originalChild.toStringShort());
  }
  return child;
}