ShadBoxBorder class

A Border that tolerates differently coloured sides inside a radius.

Border.paint throws when given a border radius while the visible sides show more than one colour. Theme animation makes that state routine: lerping a boxed field towards an underlined or borderless style fades three sides out while the bottom crosses to another colour, so mid-flight the sides legitimately disagree. This subclass paints that case as mitred straight sides clipped to the rounded outline — at field hairline widths the corners are indistinguishable from the real thing, and the state only lasts for the frames of the transition.

Inheritance

Constructors

ShadBoxBorder({BorderSide top = BorderSide.none, BorderSide right = BorderSide.none, BorderSide bottom = BorderSide.none, BorderSide left = BorderSide.none})
const

Properties

bottom BorderSide
The bottom side of this border.
finalinherited
dimensions EdgeInsetsGeometry
The widths of the sides of this border represented as an EdgeInsets.
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
isUniform bool
Whether all four sides of the border are identical. Uniform borders are typically more efficient to paint.
no setterinherited
left BorderSide
The left side of this border.
finalinherited
preferPaintInterior bool
Reports whether paintInterior is implemented.
no setterinherited
The right side of this border.
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
top BorderSide
The top side of this border.
finalinherited

Methods

add(ShapeBorder other, {bool reversed = false}) Border?
Attempts to create a new object that represents the amalgamation of this border and the other border.
inherited
getInnerPath(Rect rect, {TextDirection? textDirection}) Path
Create a Path that describes the inner edge of the border.
inherited
getOuterPath(Rect rect, {TextDirection? textDirection}) Path
Create a Path that describes the outer edge of the border.
inherited
lerpFrom(ShapeBorder? a, double t) ShapeBorder?
Linearly interpolates from another ShapeBorder (possibly of another class) to this.
inherited
lerpTo(ShapeBorder? b, double t) ShapeBorder?
Linearly interpolates from this to another ShapeBorder (possibly of another class).
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
paint(Canvas canvas, Rect rect, {TextDirection? textDirection, BoxShape shape = BoxShape.rectangle, BorderRadius? borderRadius}) → void
Paints the border within the given Rect on the given Canvas.
override
paintInterior(Canvas canvas, Rect rect, Paint paint, {TextDirection? textDirection}) → void
Paint a canvas with the appropriate shape.
inherited
scale(double t) Border
Creates a copy of this border, scaled by the factor t.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator +(ShapeBorder other) ShapeBorder
Creates a new border consisting of the two borders on either side of the operator.
inherited
operator ==(Object other) bool
The equality operator.
inherited