Skip to content

Android's onResume/onPause and iOS's viewDidAppear/viewDidDisappear for Flutter.

License

Notifications You must be signed in to change notification settings

fluttercodes/focus_detector

Repository files navigation

Focus Detector Logo

Pub.dev BadgeGitHub Build BadgeGitter BadgeEffective Dart BadgeMIT License BadgeFlutter Platform Badge

Focus Detector

Get notified every time your widget appears or disappears from the screen.

Similar to onResume()/onPause() on Android and viewDidAppear()/viewDidDisappear() on iOS.

Focus Detector fires callbacks for you whenever something happens to take or give your widget focus. Such an event might be, for instance, the user:

  • Navigating to/from another screen;
  • Turning the device’s screen on/off while your widget is visible;
  • Switching to/from another app while your widget is visible;
  • Scrolling your widget in/out the screen;

Usage

@overrideWidgetbuild(BuildContext context) =>FocusDetector( onFocusLost: (){logger.i( 'Focus Lost.''\nTriggered when either [onVisibilityLost] or [onForegroundLost] ''is called.''\nEquivalent to onPause() on Android or viewDidDisappear() on iOS.', )}, onFocusGained: (){logger.i( 'Focus Gained.''\nTriggered when either [onVisibilityGained] or [onForegroundGained] ''is called.''\nEquivalent to onResume() on Android or viewDidAppear() on iOS.', )}, onVisibilityLost: (){logger.i( 'Visibility Lost.''\nIt means the widget is no longer visible within your app.', )}, onVisibilityGained: (){logger.i( 'Visibility Gained.''\nIt means the widget is now visible within your app.', )}, onForegroundLost: (){logger.i( 'Foreground Lost.''\nIt means, for example, that the user sent your app to the background by opening ''another app or turned off the device\'s screen while your ''widget was visible.', )}, onForegroundGained: (){logger.i( 'Foreground Gained.''\nIt means, for example, that the user switched back to your app or turned the ''device\'s screen back on while your widget was visible.', )}, child:Container(), );

Usage Scenarios

  • Turn on and off resource-consuming features, such as camera, location or bluetooth;
  • Sync your data with a remote API or local database;
  • Pause and resume video/audio playback or streaming;

Sample

For a sample with more than one screen, please check out the focus-detector/set-state-focus-detector or focus-detector/bloc-focus-detector branches from the Breaking Bapp repository.

About

Android's onResume/onPause and iOS's viewDidAppear/viewDidDisappear for Flutter.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Dart100.0%