start method
void
start(
- BuildContext context,
- List<
OnboardingStep> onboardingSteps, { - void onStepChanged(
- int index
- VoidCallback? onFinish,
- VoidCallback? onSkip,
- double defaultSpotlightHorizontalPadding = _kDefaultSpotlightHorizontalPadding,
- String? skipSheetTitle,
- String? skipSheetContinueButtonText,
- String? skipSheetSkipButtonText,
- String nextText = 'OK',
- String skipText = 'Skip',
- String finishText = 'Finish',
Starts the onboarding flow with the given onboardingSteps.
The context is used to insert overlay entries for tooltips and spotlights.
Optional callbacks can be provided:
onStepChanged: Called when the user moves to a different steponFinish: Called when the user completes all stepsonSkip: Called when the user skips the onboarding
You can customize the skip confirmation sheet with skipSheetTitle,
skipSheetContinueButtonText, and skipSheetSkipButtonText.
Implementation
void start(
BuildContext context,
List<OnboardingStep> onboardingSteps, {
void Function(int index)? onStepChanged,
VoidCallback? onFinish,
VoidCallback? onSkip,
double defaultSpotlightHorizontalPadding =
_kDefaultSpotlightHorizontalPadding,
String? skipSheetTitle,
String? skipSheetContinueButtonText,
String? skipSheetSkipButtonText,
String nextText = 'OK',
String skipText = 'Skip',
String finishText = 'Finish',
}) {
// Clean any previous onboarding to avoid duplicate GlobalKeys/overlays.
dismissSilently();
_log('start() called with ${onboardingSteps.length} steps');
if (onboardingSteps.isNotEmpty) {
_logKeyState('firstStepKey', onboardingSteps.first.targetKey);
}
_context = context;
_onStepChanged = onStepChanged;
_onFinish = onFinish;
_onSkip = onSkip;
_defaultSpotlightHorizontalPadding = defaultSpotlightHorizontalPadding;
_skipSheetTitle = skipSheetTitle;
_skipSheetContinueButtonText = skipSheetContinueButtonText;
_skipSheetSkipButtonText = skipSheetSkipButtonText;
_nextText = nextText;
_skipText = skipText;
_finishText = finishText;
steps = onboardingSteps;
if (steps.isEmpty) return;
_currentIndex = 0;
_isActive = true;
_installGlobalKeyDebugHook();
_currentTargetRect = _measureTargetRect(currentStep.targetKey);
if (_currentTargetRect != null) {
_insertTooltipOverlay();
} else {
_waitForTargetAndShow();
}
}