WidgetStateColor class abstract

Defines a Color that is also a WidgetStateProperty.

This class exists to enable widgets with Color valued properties to also accept WidgetStateProperty<Color> values. A widget state color property represents a color which depends on a widget's "interactive state". This state is represented as a Set of WidgetStates, like WidgetState.pressed, WidgetState.focused and WidgetState.hovered.

WidgetStateColor should only be used with widgets that document their support, like TimePickerThemeData.dayPeriodColor.

To use a WidgetStateColor, you can either:

  1. Create a subclass of WidgetStateColor and implement the abstract resolve method.
  2. Use WidgetStateColor.resolveWith and pass in a callback that will be used to resolve the color in the given states.

If a WidgetStateColor is used for a property or a parameter that doesn't support resolving WidgetStateProperty<Color>s, then its default color value will be used for all states.

To define a const WidgetStateColor, you'll need to extend WidgetStateColor and override its resolve method. You'll also need to provide a defaultValue to the super constructor, so that we can know at compile-time what its default color is.

This example defines a WidgetStateColor with a const constructor.
link
class MyColor extends WidgetStateColor {
  const MyColor() : super(_defaultColor);

  static const int _defaultColor = 0xcafefeed;
  static const int _pressedColor = 0xdeadbeef;

  @override
  Color resolve(Set<WidgetState> states) {
    if (states.contains(WidgetState.pressed)) {
      return const Color(_pressedColor);
    }
    return const Color(_defaultColor);
  }
}

See also:

Inheritance
Implemented types

Constructors

WidgetStateColor(int defaultValue)
Abstract const constructor. This constructor enables subclasses to provide const constructors so that they can be used in const expressions.
const

Properties

alpha int
The alpha channel of this color in an 8 bit value.
no setterinherited
blue int
The blue channel of this color in an 8 bit value.
no setterinherited
green int
The green channel of this color in an 8 bit value.
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
opacity double
The alpha channel of this color as a double.
no setterinherited
red int
The red channel of this color in an 8 bit value.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
value int
A 32 bit value representing this color.
finalinherited

Methods

computeLuminance() double
Returns a brightness value between 0 for darkest and 1 for lightest.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
resolve(Set<WidgetState> states) Color
Returns a Color that's to be used when a component is in the specified state.
override
toString() String
A string representation of this object.
inherited
withAlpha(int a) Color
Returns a new color that matches this color with the alpha channel replaced with a (which ranges from 0 to 255).
inherited
withBlue(int b) Color
Returns a new color that matches this color with the blue channel replaced with b (which ranges from 0 to 255).
inherited
withGreen(int g) Color
Returns a new color that matches this color with the green channel replaced with g (which ranges from 0 to 255).
inherited
withOpacity(double opacity) Color
Returns a new color that matches this color with the alpha channel replaced with the given opacity (which ranges from 0.0 to 1.0).
inherited
withRed(int r) Color
Returns a new color that matches this color with the red channel replaced with r (which ranges from 0 to 255).
inherited

Operators

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

Static Methods

resolveWith(WidgetPropertyResolver<Color> callback) WidgetStateColor
Creates a WidgetStateColor from a WidgetPropertyResolver<Color> callback function.
override

Constants

transparent → const WidgetStateColor
A constant whose value is transparent for all states.