Border class
A border of a box, comprised of four sides: top, right, bottom, left.
The sides are represented by BorderSide objects.
All four borders the same, two-pixel wide solid white:
link
Border.all(width: 2.0, color: const Color(0xFFFFFFFF))
The border for a Material Design divider:
link
Border(bottom: BorderSide(color: Theme.of(context).dividerColor))
A 1990s-era "OK" button:
link
Container(
decoration: const BoxDecoration(
border: Border(
top: BorderSide(color: Color(0xFFFFFFFF)),
left: BorderSide(color: Color(0xFFFFFFFF)),
right: BorderSide(),
bottom: BorderSide(),
),
),
child: Container(
padding: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 2.0),
decoration: const BoxDecoration(
border: Border(
top: BorderSide(color: Color(0xFFDFDFDF)),
left: BorderSide(color: Color(0xFFDFDFDF)),
right: BorderSide(color: Color(0xFF7F7F7F)),
bottom: BorderSide(color: Color(0xFF7F7F7F)),
),
color: Color(0xFFBFBFBF),
),
child: const Text(
'OK',
textAlign: TextAlign.center,
style: TextStyle(color: Color(0xFF000000))
),
),
)
See also:
- BoxDecoration, which uses this class to describe its edge decoration.
- BorderSide, which is used to describe each side of the box.
- Theme, from the material layer, which can be queried to obtain appropriate colors to use for borders in a MaterialApp, as shown in the "divider" sample above.
- paint, which explains the behavior of BoxDecoration parameters.
- pub.dev/packages/non_uniform_border, a package that implements a Non-Uniform Border on ShapeBorder, which is used by Material Design buttons and other widgets, under the "shape" field.
- Inheritance
-
- Object
- ShapeBorder
- BoxBorder
- Border
Constructors
- Border({BorderSide top = BorderSide.none, BorderSide right = BorderSide.none, BorderSide bottom = BorderSide.none, BorderSide left = BorderSide.none})
-
Creates a border.
const
- Border.all({Color color = const Color(0xFF000000), double width = 1.0, BorderStyle style = BorderStyle.solid, double strokeAlign = BorderSide.strokeAlignInside})
-
A uniform border with all sides the same color and width.
factory
- Border.fromBorderSide(BorderSide side)
-
Creates a border whose sides are all the same.
const
- Border.symmetric({BorderSide vertical = BorderSide.none, BorderSide horizontal = BorderSide.none})
-
Creates a border with symmetrical vertical and horizontal sides.
const
Properties
- bottom → BorderSide
-
The bottom side of this border.
final
- dimensions → EdgeInsetsGeometry
-
The widths of the sides of this border represented as an EdgeInsets.
no setteroverride
- hashCode → int
-
The hash code for this object.
no setteroverride
- isUniform → bool
-
Whether all four sides of the border are identical. Uniform borders are
typically more efficient to paint.
no setteroverride
- left → BorderSide
-
The left side of this border.
final
- preferPaintInterior → bool
-
Reports whether paintInterior is implemented.
no setterinherited
- right → BorderSide
-
The right side of this border.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- top → BorderSide
-
The top side of this border.
final
Methods
-
add(
ShapeBorder other, {bool reversed = false}) → Border? -
Attempts to create a new object that represents the amalgamation of
this
border and theother
border.override -
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
.override -
lerpTo(
ShapeBorder? b, double t) → ShapeBorder? -
Linearly interpolates from
this
to another ShapeBorder (possibly of another class).override -
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
.override -
toString(
) → String -
A string representation of this object.
override
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.
override