Skip to content

Instantly share code, notes, and snippets.

@demirdev
Created December 24, 2022 10:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save demirdev/012acd2a84bce0d7cfcd8e99be5bce14 to your computer and use it in GitHub Desktop.
Save demirdev/012acd2a84bce0d7cfcd8e99be5bce14 to your computer and use it in GitHub Desktop.
import 'package:flutter/material.dart';
import 'package:flutter_dart_extensions/flutter_dart_extensions.dart';
class DoubleBackForExit extends StatelessWidget {
final Widget child;
DoubleBackForExit({Key? key, required this.child}) : super(key: key);
DateTime? latestBackTappedTime;
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
if (latestBackTappedTime == null ||
(DateTime.now().millisecondsSinceEpoch -
latestBackTappedTime!.millisecondsSinceEpoch) >
4500) {
latestBackTappedTime = DateTime.now();
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(context.tr.tap_again_for_exit),
));
} else {
return true;
}
return false;
},
child: child,
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment