MAdaptive class

A dynamic binding that resolves from a key-value store. Two subtrees, one per platform — the escape hatch for what genuinely cannot be expressed once.

Chosen at generation time, not at render: each generator emits only its own branch, so nothing platform-specific reaches the other side. There is no Dart on the home screen, so a runtime check is not possible.

Reach for this last. Prefer, in order: the per-node platform fields (sfSymbol / androidDrawable), MosaicDefinition(compactRoot:) for size, then this. Every use erodes the single-tree promise the package exists for.

It earns its place where a node behaves differently by platform and the DSL says so: MFlipper renders only its first child on iOS, MActivityIndicator animates only on Android, and MFlexible ratios hold only on Android.

MAdaptive(
  ios: MText('Swipe for more'),        // no self-cycling on iOS
  android: MFlipper([a, b]),
)
Inheritance

Constructors

MAdaptive({required MNode ios, required MNode android})
Creates an MAdaptive.
const

Properties

android MNode
Rendered on Android, including Android TV.
final
hashCode int
The hash code for this object.
no setterinherited
ios MNode
Rendered on iOS, macOS and watchOS.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() Map<String, dynamic>
override
toString() String
A string representation of this object.
inherited

Operators

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