AdaptiveExperimentLab<T> constructor
const
AdaptiveExperimentLab<T> ({
- Key? key,
- required List<
T> experiments, - required Widget itemBuilder(
- BuildContext context,
- T experiment,
- bool selected,
- VoidCallback onTap,
- required Widget focusBuilder(
- BuildContext context,
- T experiment
- required Widget evidenceBuilder(
- BuildContext context,
- T experiment
- required Widget decisionBuilder(
- BuildContext context,
- T experiment
- required String experimentTitle,
- required String evidenceTitle,
- required String decisionTitle,
- Widget? header,
- Widget? emptyState,
- String? experimentDescription,
- Widget? experimentLeading,
- String? evidenceDescription,
- Widget? evidenceLeading,
- String? decisionDescription,
- Widget? decisionLeading,
- String modalExperimentLabel = 'Open experiments',
- Widget modalExperimentIcon = const Icon(Icons.science_outlined),
- String modalEvidenceLabel = 'Open evidence',
- Widget modalEvidenceIcon = const Icon(Icons.fact_check_outlined),
- String modalDecisionLabel = 'Open decisions',
- Widget modalDecisionIcon = const Icon(Icons.rule_outlined),
- AdaptiveSize experimentDockedAt = AdaptiveSize.medium,
- AdaptiveSize evidenceDockedAt = AdaptiveSize.expanded,
- AdaptiveSize decisionDockedAt = AdaptiveSize.expanded,
- AdaptiveHeight minimumExperimentDockedHeight = AdaptiveHeight.compact,
- AdaptiveHeight minimumEvidenceDockedHeight = AdaptiveHeight.medium,
- AdaptiveHeight minimumDecisionDockedHeight = AdaptiveHeight.expanded,
- bool useContainerConstraints = true,
- bool considerOrientation = false,
- int? selectedIndex,
- int initialIndex = 0,
- ValueChanged<
int> ? onSelectedIndexChanged, - double spacing = 16,
- double itemSpacing = 12,
- int experimentFlex = 2,
- int focusFlex = 4,
- int evidenceFlex = 2,
- int focusPaneFlex = 3,
- int decisionFlex = 2,
- EdgeInsetsGeometry experimentPadding = const EdgeInsets.all(16),
- EdgeInsetsGeometry focusPadding = const EdgeInsets.all(16),
- EdgeInsetsGeometry evidencePadding = const EdgeInsets.all(16),
- EdgeInsetsGeometry decisionPadding = 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 experiment lab.
Implementation
const AdaptiveExperimentLab({
super.key,
required this.experiments,
required this.itemBuilder,
required this.focusBuilder,
required this.evidenceBuilder,
required this.decisionBuilder,
required this.experimentTitle,
required this.evidenceTitle,
required this.decisionTitle,
this.header,
this.emptyState,
this.experimentDescription,
this.experimentLeading,
this.evidenceDescription,
this.evidenceLeading,
this.decisionDescription,
this.decisionLeading,
this.modalExperimentLabel = 'Open experiments',
this.modalExperimentIcon = const Icon(Icons.science_outlined),
this.modalEvidenceLabel = 'Open evidence',
this.modalEvidenceIcon = const Icon(Icons.fact_check_outlined),
this.modalDecisionLabel = 'Open decisions',
this.modalDecisionIcon = const Icon(Icons.rule_outlined),
this.experimentDockedAt = AdaptiveSize.medium,
this.evidenceDockedAt = AdaptiveSize.expanded,
this.decisionDockedAt = AdaptiveSize.expanded,
this.minimumExperimentDockedHeight = AdaptiveHeight.compact,
this.minimumEvidenceDockedHeight = AdaptiveHeight.medium,
this.minimumDecisionDockedHeight = AdaptiveHeight.expanded,
this.useContainerConstraints = true,
this.considerOrientation = false,
this.selectedIndex,
this.initialIndex = 0,
this.onSelectedIndexChanged,
this.spacing = 16,
this.itemSpacing = 12,
this.experimentFlex = 2,
this.focusFlex = 4,
this.evidenceFlex = 2,
this.focusPaneFlex = 3,
this.decisionFlex = 2,
this.experimentPadding = const EdgeInsets.all(16),
this.focusPadding = const EdgeInsets.all(16),
this.evidencePadding = const EdgeInsets.all(16),
this.decisionPadding = const EdgeInsets.all(16),
this.modalHeightFactor = 0.72,
this.showModalDragHandle = true,
this.animateSize = true,
this.animationDuration = const Duration(milliseconds: 250),
this.animationCurve = Curves.easeInOutCubic,
});