AdaptiveControlCenter constructor

const AdaptiveControlCenter({
  1. Key? key,
  2. required Widget main,
  3. required Widget sidebar,
  4. required String sidebarTitle,
  5. required Widget insights,
  6. required String insightsTitle,
  7. required Widget activity,
  8. required String activityTitle,
  9. Widget? header,
  10. String? sidebarDescription,
  11. Widget? sidebarLeading,
  12. String? insightsDescription,
  13. Widget? insightsLeading,
  14. String? activityDescription,
  15. Widget? activityLeading,
  16. String modalSidebarLabel = 'Open sidebar',
  17. Widget modalSidebarIcon = const Icon(Icons.view_sidebar_outlined),
  18. String modalInsightsLabel = 'Open insights',
  19. Widget modalInsightsIcon = const Icon(Icons.insights_outlined),
  20. String modalActivityLabel = 'Open activity',
  21. Widget modalActivityIcon = const Icon(Icons.history_outlined),
  22. AdaptiveSize sidebarDockedAt = AdaptiveSize.medium,
  23. AdaptiveSize insightsDockedAt = AdaptiveSize.expanded,
  24. AdaptiveSize activityDockedAt = AdaptiveSize.expanded,
  25. AdaptiveHeight minimumSidebarDockedHeight = AdaptiveHeight.compact,
  26. AdaptiveHeight minimumInsightsDockedHeight = AdaptiveHeight.medium,
  27. AdaptiveHeight minimumActivityDockedHeight = AdaptiveHeight.expanded,
  28. bool useContainerConstraints = true,
  29. bool considerOrientation = false,
  30. double spacing = 16,
  31. int sidebarFlex = 2,
  32. int mainFlex = 4,
  33. int insightsFlex = 2,
  34. int mainPaneFlex = 3,
  35. int activityFlex = 2,
  36. EdgeInsetsGeometry sidebarPadding = const EdgeInsets.all(16),
  37. EdgeInsetsGeometry mainPadding = const EdgeInsets.all(16),
  38. EdgeInsetsGeometry insightsPadding = const EdgeInsets.all(16),
  39. EdgeInsetsGeometry activityPadding = const EdgeInsets.all(16),
  40. double modalHeightFactor = 0.72,
  41. bool showModalDragHandle = true,
  42. bool animateSize = true,
  43. Duration animationDuration = const Duration(milliseconds: 250),
  44. 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.',
      );