41 lines
1.0 KiB
Dart
41 lines
1.0 KiB
Dart
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
import '../util/util.dart';
|
|
|
|
class ExitAppConfirmation extends StatefulWidget {
|
|
final Widget child;
|
|
|
|
ExitAppConfirmation({required this.child});
|
|
|
|
@override
|
|
_ExitAppConfirmationState createState() => _ExitAppConfirmationState();
|
|
}
|
|
|
|
class _ExitAppConfirmationState extends State<ExitAppConfirmation> {
|
|
DateTime? _lastPressed;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return WillPopScope(
|
|
onWillPop: _onBackPressed,
|
|
child: widget.child,
|
|
);
|
|
}
|
|
|
|
Future<bool> _onBackPressed() {
|
|
final currentTime = DateTime.now();
|
|
|
|
if (_lastPressed == null ||
|
|
currentTime.difference(_lastPressed!) > Duration(seconds: 2)) {
|
|
_lastPressed = currentTime;
|
|
// ScaffoldMessenger.of(context).showSnackBar(
|
|
// const SnackBar(content: Text('再按一次返回键退出应用')),
|
|
// );
|
|
showToast("再按一次返回键退出应用");
|
|
return Future.value(false);
|
|
}
|
|
return Future.value(true);
|
|
}
|
|
}
|