Flutter WillPopScope 拦截路由返回
时间:2019-10-14
本文章向大家介绍Flutter WillPopScope 拦截路由返回,主要包括Flutter WillPopScope 拦截路由返回使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
- WillPopScope
- addScopedWillPopCallback 启用此路由以使用户否决尝试以将其关闭。
典型应用是如果用户尝试退出表单,则警告用户有关未保存的表单数据。连按两次返回键退出APP。
工作示例
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:toast/toast.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
initialRoute: '/',
routes: {
'/': (context) => HomePage(),
},
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
Timer _closeTimer;
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
if (_closeTimer?.isActive ?? false) {
return true;
}
Toast.show(
"再次点击退出app",
context,
duration: Toast.LENGTH_SHORT,
gravity: Toast.BOTTOM,
);
_closeTimer = Timer(Duration(milliseconds: 1000), null);
return false;
},
child: Scaffold(
appBar: AppBar(
title: Text('Home Page'),
),
body: Center(
child: Text('home page'),
),
),
);
}
}
原文地址:https://www.cnblogs.com/ajanuw/p/11669904.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- BFE.dev前端刷题11 - 什么是composition?实现一个pipe()方法
- SSH整合主要XML代码
- struts标签中的select
- 通过反射技术获取泛型真实实例
- 使用POI操作Excel
- StrutsResultSupport的使用
- QueryHelper插件类(hql)
- Action中使用Json
- Spring 集成Quartz
- springMVC笔记一
- springMVC笔记二
- 译|通过构建自己的JavaScript测试框架来了解JS测试
- 百兆、千兆、POE网络中网线线序
- WPF 解决 Skia 因为找不到字体而绘制不出中文字符
- 视频监控系统视频上云解决方案EasyCVR集成海康EHome私有协议系列——通过流媒体服务开启语音对讲