ChipThemeData class Null safety

Holds the color, shape, and text styles for a Material Design chip theme.

Use this class to configure a ChipTheme widget, or to set the ThemeData.chipTheme for a Theme widget.

To obtain the current ambient chip theme, use ChipTheme.of.

The parts of a chip are:

  • The "avatar", which is a widget that appears at the beginning of the chip. This is typically a CircleAvatar widget.
  • The "label", which is the widget displayed in the center of the chip. Typically this is a Text widget.
  • The "delete icon", which is a widget that appears at the end of the chip.
  • The chip is disabled when it is not accepting user input. Only some chips have a disabled state: InputChip, ChoiceChip, and FilterChip.

The simplest way to create a ChipThemeData is to use copyWith on the one you get from ChipTheme.of, or create an entirely new one with ChipThemeData.fromDefaults.

class CarColor extends StatefulWidget {
  const CarColor({super.key});

  @override
  State createState() => _CarColorState();
}

class _CarColorState extends State<CarColor> {
  Color _color = Colors.red;

  @override
  Widget build(BuildContext context) {
    return ChipTheme(
      data: ChipTheme.of(context).copyWith(backgroundColor: Colors.lightBlue),
      child: ChoiceChip(
        label: const Text('Light Blue'),
        onSelected: (bool value) {
          setState(() {
            _color = value ? Colors.lightBlue : Colors.red;
          });
        },
        selected: _color == Colors.lightBlue,
      ),
    );
  }
}

See also:

  • Chip, a chip that displays information and can be deleted.
  • InputChip, a chip that represents a complex piece of information, such as an entity (person, place, or thing) or conversational text, in a compact form.
  • ChoiceChip, allows a single selection from a set of options. Choice chips contain related descriptive text or categories.
  • FilterChip, uses tags or descriptive words as a way to filter content.
  • ActionChip, represents an action related to primary content.
  • CircleAvatar, which shows images or initials of entities.
  • Wrap, A widget that displays its children in multiple horizontal or vertical runs.
  • ChipTheme widget, which can override the chip theme of its children.
  • Theme widget, which performs a similar function to ChipTheme, but for overall themes.
  • ThemeData, which has a default ChipThemeData.
Mixed in types
Annotations

Constructors

ChipThemeData({Color? backgroundColor, Color? deleteIconColor, Color? disabledColor, Color? selectedColor, Color? secondarySelectedColor, Color? shadowColor, Color? surfaceTintColor, Color? selectedShadowColor, bool? showCheckmark, Color? checkmarkColor, EdgeInsetsGeometry? labelPadding, EdgeInsetsGeometry? padding, BorderSide? side, OutlinedBorder? shape, TextStyle? labelStyle, TextStyle? secondaryLabelStyle, Brightness? brightness, double? elevation, double? pressElevation, IconThemeData? iconTheme})
Create a ChipThemeData given a set of exact values. All the values must be specified except for shadowColor, selectedShadowColor, elevation, and pressElevation, which may be null.
const
ChipThemeData.fromDefaults({Brightness? brightness, Color? primaryColor, required Color secondaryColor, required TextStyle labelStyle})
Generates a ChipThemeData from a brightness, a primary color, and a text style.
factory

Properties

backgroundColor Color?
Overrides the default for ChipAttributes.backgroundColor which is used for unselected, enabled chip backgrounds.
final
brightness Brightness?
Overrides the default value for all chips which affects various base material color choices in the chip rendering.
final
checkmarkColor Color?
Overrides the default for CheckmarkableChipAttributes.checkmarkColor.
final
deleteIconColor Color?
Overrides the default for DeletableChipAttributes.deleteIconColor.
final
disabledColor Color?
Overrides the default for DisabledChipAttributes.disabledColor, the background color which indicates that the chip is not enabled.
final
elevation double?
Overrides the default for ChipAttributes.elevation, the elevation of the chip's Material.
final
hashCode int
The hash code for this object.
read-onlyoverride
iconTheme IconThemeData?
Overrides the default for ChipAttributes.iconTheme, the theme used for all icons in the chip.
final
labelPadding EdgeInsetsGeometry?
Overrides the default for ChipAttributes.labelPadding, the padding around the chip's label widget.
final
labelStyle TextStyle?
Overrides the default for ChipAttributes.labelStyle, the style of the DefaultTextStyle that contains the chip's label.
final
padding EdgeInsetsGeometry?
Overrides the default for ChipAttributes.padding, the padding between the contents of the chip and the outside shape.
final
pressElevation double?
Overrides the default for TappableChipAttributes.pressElevation, the elevation of the chip's Material during a "press" or tap down.
final
runtimeType Type
A representation of the runtime type of the object.
read-onlyinherited
secondaryLabelStyle TextStyle?
Overrides the default for ChoiceChip.labelStyle, the style of the DefaultTextStyle that contains the chip's label.
final
secondarySelectedColor Color?
Overrides the default for ChoiceChip.selectedColor, the background color that indicates that the chip is selected.
final
selectedColor Color?
Overrides the default for SelectableChipAttributes.selectedColor, the background color that indicates that the chip is selected.
final
selectedShadowColor Color?
Overrides the default for SelectableChipAttributes.selectedShadowColor, the Color of the chip's shadow when its elevation is greater than 0 and the chip is selected.
final
shadowColor Color?
Overrides the default for ChipAttributes.shadowColor, the Color of the chip's shadow when its elevation is greater than 0.
final
shape OutlinedBorder?
Overrides the default for ChipAttributes.shape, the shape of border to draw around the chip.
final
showCheckmark bool?
Overrides the default for CheckmarkableChipAttributes.showCheckmark, which indicates if a check mark should be shown.
final
side BorderSide?
Overrides the default for ChipAttributes.side, the color and weight of the chip's outline.
final
surfaceTintColor Color?
Overrides the default for ChipAttributes.surfaceTintColor, the Color of the chip's surface tint overlay when its elevation is greater than 0.
final

Methods

copyWith({Color? backgroundColor, Color? deleteIconColor, Color? disabledColor, Color? selectedColor, Color? secondarySelectedColor, Color? shadowColor, Color? surfaceTintColor, Color? selectedShadowColor, bool? showCheckmark, Color? checkmarkColor, EdgeInsetsGeometry? labelPadding, EdgeInsetsGeometry? padding, BorderSide? side, OutlinedBorder? shape, TextStyle? labelStyle, TextStyle? secondaryLabelStyle, Brightness? brightness, double? elevation, double? pressElevation, IconThemeData? iconTheme}) ChipThemeData
Creates a copy of this object but with the given fields replaced with the new values.
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringShort() String
A brief description of this object, usually just the runtimeType and the hashCode.
inherited

Operators

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

Static Methods

lerp(ChipThemeData? a, ChipThemeData? b, double t) ChipThemeData?
Linearly interpolate between two chip themes.