MaterialStateBorderSide class Null safety

Defines a BorderSide whose value depends on a set of MaterialStates which represent the interactive state of a component.

To use a MaterialStateBorderSide, you should create a subclass of a MaterialStateBorderSide and override the abstract resolve method.

This class enables existing widget implementations with BorderSide properties to be extended to also effectively support MaterialStateProperty<BorderSide> property values. MaterialStateBorderSide should only be used with widgets that document their support, like ActionChip.side.

This example defines a subclass of MaterialStateBorderSide, that resolves to a red border side when its widget is selected.
To create a local project with this code sample, run:
flutter create --sample=material.MaterialStateBorderSide.1 mysample

This class should only be used for parameters which are documented to take MaterialStateBorderSide, otherwise only the default state will be used.

Implemented types


Abstract const constructor. This constructor enables subclasses to provide const constructors so that they can be used in const expressions.


color Color
The color of this side of the border.
final, inherited
hashCode int
The hash code for this object.
read-only, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited
strokeAlign StrokeAlign
The direction of where the border will be drawn relative to the container.
final, inherited
style BorderStyle
The style of this side of the border.
final, inherited
width double
The width of this side of the border, in logical pixels.
final, inherited


copyWith({Color? color, double? width, BorderStyle? style}) BorderSide
Creates a copy of this border but with the given fields replaced with the new values.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed.
resolve(Set<MaterialState> states) BorderSide?
Returns a BorderSide that's to be used when a Material component is in the specified state. Return null to defer to the default value of the widget or theme.
scale(double t) BorderSide
Creates a copy of this border side description but with the width scaled by the factor t.
toPaint() Paint
Create a Paint object that, if used to stroke a line, will draw the line in this border's style.
toString() String
A string representation of this object.


operator ==(Object other) bool
The equality operator.

Static Methods

resolveWith(MaterialPropertyResolver<BorderSide?> callback) MaterialStateBorderSide
Creates a MaterialStateBorderSide from a MaterialPropertyResolver<BorderSide?> callback function.