MainScreenComponent class

Adaptive layout widget powering MediaSFU's spotlight/gallery split.

  • Computes child dimensions responsively based on mainSize, doStack, and screen orientation. Wide screens (aspect ratio ≥ 1) apply fractional sizing; narrow screens stack children vertically.
  • Invokes updateComponentSizes whenever layout metrics change, delivering ComponentSizes so external controllers can adjust pagination, overlays, or helper positioning.
  • Provides three builder hooks: containerBuilder (wrap the entire component), childrenBuilder (wrap the row/column that holds children), and childBuilder (wrap each individual child).
  • Respects showControls by reserving (1 - defaultFraction) of the height for an action bar.

Use this widget in MediasfuUICustomOverrides.mainScreen to deliver custom spotlight arrangements, branded theming, or alternative child layouts.

Example:

MainScreenComponent(
  options: MainScreenComponentOptions(
    mainSize: 70,
    doStack: true,
    containerWidthFraction: 0.5,
    containerHeightFraction: 0.5,
    updateComponentSizes: (sizes) => print('Updated sizes: $sizes'),
    defaultFraction: 0.9,
    showControls: true,
    children: [
    ChildComponent1(),
    ChildComponent2(),
   ],
  ),
);

Notes:

  • The component adjusts layout direction (horizontal or vertical) based on screen width.
  • The updateComponentSizes callback provides updated component dimensions for responsive adjustments.
Inheritance

Constructors

MainScreenComponent.new({Key? key, required MainScreenComponentOptions options})
const

Properties

hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
options MainScreenComponentOptions
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

build(BuildContext context) Widget
Describes the part of the user interface represented by this widget.
override
createElement() StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent 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
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

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