| 123456789101112131415161718192021222324252627282930313233343536373839 |
- import 'dart:io';
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- class WillExitAfter2BackController extends GetxController{
- DateTime? lastPressedAt; //上次点击时间
- }
- class WillExitAfter2Back extends GetView<WillExitAfter2BackController>{
- const WillExitAfter2Back({super.key, required this.child});
- final Widget child;
- @override
- Widget build(BuildContext context) {
- return GetBuilder<WillExitAfter2BackController>(
- init: WillExitAfter2BackController(),
- builder: (c){
- return WillPopScope(
- onWillPop: () async {
- if (c.lastPressedAt == null ||
- DateTime.now().difference(c.lastPressedAt!) > const Duration(seconds: 2)) {
- //两次点击间隔超过1秒则重新计时
- c.lastPressedAt = DateTime.now();
- ScaffoldMessenger.of(context).showSnackBar(SnackBar(
- content: const Text('再按一次退出'),
- duration: 2.seconds,
- ));
- return false;
- }
- // return true;
- exit(0);
- },
- child: child,
- );
- });
- }
- }
|