RouteConditionalLayout class final
A conditional layout for routes that adapts based on specified conditions.
Allows defining different layouts for routes based on conditions like:
- Screen size
- Platform
- Theme mode
- Authentication state
Example:
final layout = RouteConditionalLayout(
cases: [
LayoutCase(
condition: ScreenSize(),
layout: MobileLayout(),
),
],
defaultCase: DesktopLayout(),
condition: ScreenSize(),
);
- Inheritance
-
- Object
- LayoutConfiguration<
Route> - ConditionalLayout<
Route> - RouteConditionalLayout
- Annotations
-
- @JsonSerializable()
Constructors
-
RouteConditionalLayout.new({required List<
LayoutCaseItem> cases, required String defaultCase, required Condition condition}) -
RouteConditionalLayout.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, Route 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<
RouteConditionalLayout> -
final
Constants
- schemaName → const String