AdaptiveControlCenter constructor
const
AdaptiveControlCenter({
- Key? key,
- required Widget main,
- required Widget sidebar,
- required String sidebarTitle,
- required Widget insights,
- required String insightsTitle,
- required Widget activity,
- required String activityTitle,
- Widget? header,
- String? sidebarDescription,
- Widget? sidebarLeading,
- String? insightsDescription,
- Widget? insightsLeading,
- String? activityDescription,
- Widget? activityLeading,
- String modalSidebarLabel = 'Open sidebar',
- Widget modalSidebarIcon = const Icon(Icons.view_sidebar_outlined),
- String modalInsightsLabel = 'Open insights',
- Widget modalInsightsIcon = const Icon(Icons.insights_outlined),
- String modalActivityLabel = 'Open activity',
- Widget modalActivityIcon = const Icon(Icons.history_outlined),
- AdaptiveSize sidebarDockedAt = AdaptiveSize.medium,
- AdaptiveSize insightsDockedAt = AdaptiveSize.expanded,
- AdaptiveSize activityDockedAt = AdaptiveSize.expanded,
- AdaptiveHeight minimumSidebarDockedHeight = AdaptiveHeight.compact,
- AdaptiveHeight minimumInsightsDockedHeight = AdaptiveHeight.medium,
- AdaptiveHeight minimumActivityDockedHeight = AdaptiveHeight.expanded,
- bool useContainerConstraints = true,
- bool considerOrientation = false,
- double spacing = 16,
- int sidebarFlex = 2,
- int mainFlex = 4,
- int insightsFlex = 2,
- int mainPaneFlex = 3,
- int activityFlex = 2,
- EdgeInsetsGeometry sidebarPadding = const EdgeInsets.all(16),
- EdgeInsetsGeometry mainPadding = const EdgeInsets.all(16),
- EdgeInsetsGeometry insightsPadding = const EdgeInsets.all(16),
- EdgeInsetsGeometry activityPadding = const EdgeInsets.all(16),
- double modalHeightFactor = 0.72,
- bool showModalDragHandle = true,
- bool animateSize = true,
- Duration animationDuration = const Duration(milliseconds: 250),
- Curve animationCurve = Curves.easeInOutCubic,
Creates an adaptive control center.
Implementation
const AdaptiveControlCenter({
super.key,
required this.main,
required this.sidebar,
required this.sidebarTitle,
required this.insights,
required this.insightsTitle,
required this.activity,
required this.activityTitle,
this.header,
this.sidebarDescription,
this.sidebarLeading,
this.insightsDescription,
this.insightsLeading,
this.activityDescription,
this.activityLeading,
this.modalSidebarLabel = 'Open sidebar',
this.modalSidebarIcon = const Icon(Icons.view_sidebar_outlined),
this.modalInsightsLabel = 'Open insights',
this.modalInsightsIcon = const Icon(Icons.insights_outlined),
this.modalActivityLabel = 'Open activity',
this.modalActivityIcon = const Icon(Icons.history_outlined),
this.sidebarDockedAt = AdaptiveSize.medium,
this.insightsDockedAt = AdaptiveSize.expanded,
this.activityDockedAt = AdaptiveSize.expanded,
this.minimumSidebarDockedHeight = AdaptiveHeight.compact,
this.minimumInsightsDockedHeight = AdaptiveHeight.medium,
this.minimumActivityDockedHeight = AdaptiveHeight.expanded,
this.useContainerConstraints = true,
this.considerOrientation = false,
this.spacing = 16,
this.sidebarFlex = 2,
this.mainFlex = 4,
this.insightsFlex = 2,
this.mainPaneFlex = 3,
this.activityFlex = 2,
this.sidebarPadding = const EdgeInsets.all(16),
this.mainPadding = const EdgeInsets.all(16),
this.insightsPadding = const EdgeInsets.all(16),
this.activityPadding = const EdgeInsets.all(16),
this.modalHeightFactor = 0.72,
this.showModalDragHandle = true,
this.animateSize = true,
this.animationDuration = const Duration(milliseconds: 250),
this.animationCurve = Curves.easeInOutCubic,
}) : assert(spacing >= 0, 'spacing must be zero or greater.'),
assert(sidebarFlex > 0, 'sidebarFlex must be greater than zero.'),
assert(mainFlex > 0, 'mainFlex must be greater than zero.'),
assert(insightsFlex > 0, 'insightsFlex must be greater than zero.'),
assert(mainPaneFlex > 0, 'mainPaneFlex must be greater than zero.'),
assert(activityFlex > 0, 'activityFlex must be greater than zero.'),
assert(
modalHeightFactor > 0 && modalHeightFactor <= 1,
'modalHeightFactor must be between 0 and 1.',
);