isUniform property Null safety

bool isUniform
override

Whether all four sides of the border are identical. Uniform borders are typically more efficient to paint.

A uniform border by definition has no text direction dependency and therefore could be expressed as a Border, even if it is currently a BorderDirectional. A uniform border can also be expressed as a RoundedRectangleBorder.

Implementation

@override
bool get isUniform {
  final Color topColor = top.color;
  if (start.color != topColor ||
      end.color != topColor ||
      bottom.color != topColor) {
    return false;
  }

  final double topWidth = top.width;
  if (start.width != topWidth ||
      end.width != topWidth ||
      bottom.width != topWidth) {
    return false;
  }

  final BorderStyle topStyle = top.style;
  if (start.style != topStyle ||
      end.style != topStyle ||
      bottom.style != topStyle) {
    return false;
  }

  if (_strokeAlignIsUniform == false) {
    return false;
  }

  return true;
}