removeViewInsets method Null safety
Creates a copy of this media query data but with the given viewInsets replaced with zero.
The removeLeft, removeTop, removeRight, and removeBottom arguments
must not be null. If all four are false (the default) then this
MediaQueryData is returned unmodified.
See also:
- MediaQuery.removeViewInsets, which uses this method to remove viewInsets from the ambient MediaQuery.
- removePadding, the same thing but for padding.
- removeViewPadding, the same thing but for viewPadding.
Implementation
MediaQueryData removeViewInsets({
  bool removeLeft = false,
  bool removeTop = false,
  bool removeRight = false,
  bool removeBottom = false,
}) {
  if (!(removeLeft || removeTop || removeRight || removeBottom)) {
    return this;
  }
  return copyWith(
    viewPadding: viewPadding.copyWith(
      left: removeLeft ? math.max(0.0, viewPadding.left - viewInsets.left) : null,
      top: removeTop ? math.max(0.0, viewPadding.top - viewInsets.top) : null,
      right: removeRight ? math.max(0.0, viewPadding.right - viewInsets.right) : null,
      bottom: removeBottom ? math.max(0.0, viewPadding.bottom - viewInsets.bottom) : null,
    ),
    viewInsets: viewInsets.copyWith(
      left: removeLeft ? 0.0 : null,
      top: removeTop ? 0.0 : null,
      right: removeRight ? 0.0 : null,
      bottom: removeBottom ? 0.0 : null,
    ),
  );
}