createOverlayEntries method

  1. @override
Iterable<OverlayEntry> createOverlayEntries()
override

Subclasses should override this getter to return the builders for the overlay.

Implementation

@override
Iterable<OverlayEntry> createOverlayEntries() {
  List<OverlayEntry> overlays = [];

  if (awesomeMessage.overlayBlur! > 0.0) {
    overlays.add(
      OverlayEntry(
          builder: (BuildContext context) {
            return GestureDetector(
              onTap: awesomeMessage.isDismissible!
                  ? () => awesomeMessage.dismiss()
                  : null,
              child: AnimatedBuilder(
                animation: _filterBlurAnimation,
                builder: (context, child) {
                  return BackdropFilter(
                    filter: ImageFilter.blur(
                        sigmaX: _filterBlurAnimation.value,
                        sigmaY: _filterBlurAnimation.value),
                    child: Container(
                      constraints: BoxConstraints.expand(),
                      color: _filterColorAnimation.value,
                    ),
                  );
                },
              ),
            );
          },
          maintainState: false,
          opaque: opaque),
    );
  }

  overlays.add(
    OverlayEntry(
        builder: (BuildContext context) {
          final Widget annotatedChild = Semantics(
            child: AlignTransition(
              alignment: _animation!,
              child: awesomeMessage.isDismissible!
                  ? _getDismissibleAwesomeMessage(_builder!)
                  : _getAwesomeMessage(),
            ),
            focused: false,
            container: true,
            explicitChildNodes: true,
          );
          return theme != null
              ? Theme(data: theme!, child: annotatedChild)
              : annotatedChild;
        },
        maintainState: false,
        opaque: opaque),
  );

  return overlays;
}