import 'dart:io'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; class WillExitAfter2BackController extends GetxController{ DateTime? lastPressedAt; //上次点击时间 } class WillExitAfter2Back extends GetView{ const WillExitAfter2Back({super.key, required this.child}); final Widget child; @override Widget build(BuildContext context) { return GetBuilder( 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, ); }); } }