Flutter WillPopScope 双击返回与界面退出提示
在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天、每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不妨来瞅瞅码农的轨迹。
如果你有兴趣 你可以关注一下公众号 biglead 来获取最新的学习资料。
- Flutter 从入门 到精通系列文章在这里
- 当然也必需是要有源码的 在这里了
- github 有点慢
- 系列学习教程在这里
在Android中点击物理返回按钮,或者是全面屏的手势退出,或者是iOS中的左滑退出,在Flutter中可使用WillPopScope 拦截退出事件
本文章的效果
核心代码就是
@overrideWidget build(BuildContext context) {//返回 或者说退出页面里的提示return WillPopScope(onWillPop: () async {//拦截 返回true 表示不拦截return false;},child: Scaffold(..);}
实现双击返回提示退出
main() {runApp(MaterialApp(//不显示 debug标签debugShowCheckedModeBanner: false,//显示的首页面home: DemoWillPopScope(),));
}
///代码清单
class DemoWillPopScope extends StatefulWidget {@override_DemoWillPopScopeState createState() => _DemoWillPopScopeState();
}class _DemoWillPopScopeState extends State<DemoWillPopScope> {//上一次点击事件int pretime = 0;@overrideWidget build(BuildContext context) {//返回 或者说退出页面里的提示return WillPopScope(onWillPop: () async {print("返回");//当前时间int now = DateTime.now().millisecond;//计算时间差int flag = now - pretime;//两次点击时间太长不做处理if (flag > 1000) {print("返回1");pretime = now;return false;}print("返回2");showTips();//拦截return false;},child: Scaffold(appBar: AppBar(title: Text("拦截返回按钮"),),body: Container(padding: EdgeInsets.all(30),child: Column(children: [],),),),);}void showTips() async {bool flag = await showDialog<bool>(context: context,builder: (BuildContext context) {return new AlertDialog(title: Text("提示"),content: Text("您确定要退出吗???"),actions: [TextButton(onPressed: () {Navigator.of(context).pop(true);},child: Text("确定")),TextButton(onPressed: () {Navigator.of(context).pop(false);},child: Text("取消"))],);});if (flag) {//退出当前页面}}
}
Flutter WillPopScope 双击返回与界面退出提示相关推荐
- HarmonyOS/OpenHarmony 双击返回与退出App
作者:坚果,公众号:"大前端之旅",哔哩哔哩,OpenHarmony布道师,OpenHarmony校源行开源大使,电子发烧友鸿蒙MVP,51CTO博客专家博主,阿里云博客专家. 有 ...
- 【Flutter 返回桌面不退出app解决办法】
Flutter 返回桌面不退出app 1.MainActivity(kotlin版本的),之前的getFlutterView()提示找不到,改为flutterEngine.dartExecutor.b ...
- Android Native APP开发笔记:双击返回键退出应用单击返回键返回桌面
文章目录 目的 基础说明 双击返回键退出应用 单击返回键回到桌面 总结 目的 双击返回键退出应用 很早之前就是Android中非常常见的一种功能,而目前好多安卓应用为了应用常驻都改为使用 单击返回键返 ...
- Android实现退出提示的功能
摘要:本文主要是实现在Android中退出提示的功能,平常使用Android手机时,点击返回键时,由于不小心点击返回键过快,导至程序返回试界面之后直接退出程序,导至用户还要再重新登录一次.为解决此类问 ...
- 5+app解决返回键直接退出应用问题
5+app在首页双击返回的话退出应用,在二级页面点击返回的话则返回上一页 document.addEventListener('plusready', function() { var first = ...
- 解决Hbuilder打包的app返回键直接退出
解决Hbuilder打包的app返回键直接退出 参考 https://blog.csdn.net/qq_25252769/article/details/76913083 解决打包成App后,单击 手 ...
- thinkphp实现登录后返回原界面
我们通常会在项目里定义一个登录控制器和登录界面用于用户的登录,可是通常我们在方法里会指定一个登录成功或失败返回的界面,通常失败返回登录界面重新登录,成功则跳到首页. 那么现在问题来了,如果用户一开始没 ...
- Android开发如何双击返回键退出程序
最近写了一个Android的App,几个版本之后才知道我的程序没有退出....好生尴尬. 后来我在网上搜了一下,发现了一个说法: Button exitBn = (Button) findViewBy ...
- php返回原界面,thinkphp实现登录后返回原界面
我们通常会在项目里定义一个登录控制器和登录界面用于用户的登录,可是通常我们在方法里会指定一个登录成功或失败返回的界面,通常失败返回登录界面重新登录,成功则跳到首页. 那么现在问题来了,如果用户一开始没 ...
最新文章
- Java调用ocx控件以及dll
- Thinkphp中Auth认证
- NPOI 1.2教程(目录)
- rsa php前台加密后台解密源码,使用RSA实现前端公钥加密后端私钥解密
- jmeter JDBC 连接数据库
- 【java笔记】TCP通信程序
- CSS 3D透视效果 星空穿越
- GEE:快速下载数字高程DEM数据
- KVM虚拟化技术介绍以及相关操作
- 我的团长我的团第十六集
- python零基础电子书免费下载-零基础入门学习Python PDF 扫描版
- OmegaT术语库介绍与分享
- 24种设计模式的定义和使用场合
- 关于Windows的用户帐户控制
- Win11--将右键菜单改回Win10(展开菜单)
- UI5-Fiori初学者导航
- java中的smm,java毕业设计_springboot框架的基于SMM框架的局域网文件共享及检索系统...
- 放大电路的静态工作点的重要性
- 华为ensp保存网络设备配置和导出导入网络设备
- python批量处理视频教程_如何用python批量调整视频声音
热门文章
- 【项目合作】海隆石油工业集团诚邀巡检识别工程合作伙伴
- 百度开源业内首个口罩人脸检测及分类模型,携手开发者共同“抗疫”
- Python入门教程实战,用Python做一个有趣的拿石子游戏
- Python基础入门的必备知识点
- 【TensorFlow】TensorFlow函数精讲之tf.train.ExponentialMovingAverage()
- 手把手教你用itchat统计好友信息,了解一下?
- 批量读写变换图片(转)
- 等式约束的序列二次规划(SQP)
- 自动驾驶车辆转向控制(通过支持转角控制的EPS实现角速度控制)
- mysql text 函数的使用方法_MySQL空间数据操作:GeomFromText()和astext()函数报错解决...