CardConditionalLayout class final

A conditional layout for cards that adapts based on specified conditions.

Allows defining different layouts for cards based on conditions like:

  • Screen size (compact vs expanded layouts)
  • Theme mode (light/dark specific layouts)
  • Content properties (image presence, action count)

Example:

final layout = CardConditionalLayout(
  cases: [
    LayoutCaseItem(
      value: 'mobile',
      item: CompactCardLayout(),
    ),
    LayoutCaseItem(
      value: 'desktop',
      item: ExpandedCardLayout(),
    ),
  ],
  defaultCase: 'desktop',
  condition: ScreenSize(),
);
Inheritance
Annotations
  • @JsonSerializable.new()

Constructors

CardConditionalLayout({required List<LayoutCaseItem> cases, required String defaultCase, required Condition condition})
CardConditionalLayout.fromJson(Map<String, dynamic> json)
factory

Properties

cases → List<LayoutCaseItem>
finalinherited
condition → Condition
finalinherited
contentType → Type
finalinherited
defaultCase → String
finalinherited
hashCode → int
The hash code for this object.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
schemaType → String
The schema type of the content item.
finalinherited

Methods

build(BuildContext context, Card content) → Widget
Builds the layout widget tree for the given content item.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

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

Static Properties

typeDescriptor → TypeDescriptor<CardConditionalLayout>
final

Constants

schemaName → const String