Flutter 中使用WillPopScope

【Flutter】二十二、Fultter功能组件——WillPopScope 为了避免用户误触返回按钮而导致APP退出,在很多APP中都拦截了用户点击返回键的按钮,当用户在某一个时间段内点击两次时,才会认为用户是要退出(而非误触)。Flutter中的WillPopScope就可以用来完成该功能。 一、WillPopScope构造函数 WillPopScope({ Key key, @required this.child, @required t... 阅读详情

WillPopScope  这个控件可以用来一些防止误触判断,

onWillPop是一个回调函数,当用户点击返回按钮时被调用(包括导航返回按钮及Android物理返回按钮)。该回调需要返回一个Future对象,如果返回的Future最终值为false时,则当前路由不出栈(不会返回);最终值为true时,当前路由出栈退出。我们需要提供这个回调来决定是否退出。

#

import 'package:flutter/material.dart';

class HomePage extends StatefulWidget {
  const HomePage();

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text("data"),
        ),
        body: WillPopScope(
            onWillPop: () async => showDialog(
                context: context,
                builder: (context) =>
                    AlertDialog(title: Text('你确定要退出吗?'), actions: <Widget>[
                      RaisedButton(
                          child: Text('退出'),
                          onPressed: () => Navigator.of(context).pop(true)),
                      RaisedButton(
                          child: Text('取消'),
                          onPressed: () => Navigator.of(context).pop(false)),
                    ])),
            child: Center(
              child: ElevatedButton(
                onPressed: () {},
                child: Text("退出"),
              ),
            )));
  }
}

Flutter 之PopScope组件的基本用法,拦截系统返回键 PopScope的基本用法 阅读详情

相关推荐

Flutter:导航返回拦截WillPopScope组件(功能性组件)

导航返回拦截WillPopScope: 为了避免用户误触返回按钮而导致APP退出,在很多App中都拦截了用户点击返回键的按钮, 当用户在某一个时间段内点击2次时,才会认为用户是要退出(而非触摸)。Flutter中可以通过WillPopScope来实现返回按钮的拦截。 onWillPop是一个回调函数,当用户点击返回按钮的时候调用(包括导航返回按钮以及android物理返回按...

手写我对你的温柔 5165

Flutter中如何使用WillPopScope

老孟导读:在Flutter中如何实现点击2次Back按钮退出App,如何实现App中多个Route(路由),如何实现Back按钮只退出指定页面,此篇文章将告诉你。 WillPopScope WillPopScope用于处理是否离开当前页面,在Flutter中有多种方式可以离开当前页面,比如AppBar、CupertinoNavigationBar上面的返回按钮,点击将会回到前一个页面,在Android手机上点击实体(虚拟)返回按钮,也将会回到前一个页面,此功能对于iOS程序员来说可能特别容易忽略。 .

大灰狼的小绵羊哥哥的博客 7474

Flutter跨平台移动端开发丨WillPopScope、InheritedWidget、Theme

目录 WillPopScope(返回事件拦截器) InheritedWidget(数据传递与共享) Theme (主题控制) WillPopScope(返回事件拦截器) 可防止误触情况的发生,也可监听返回按钮点击事件 const WillPopScope({ Key key, @required this.child, @required this...

全栈工程师 293

Flutter 中的 PopScope 小部件:全面指南

PopScope是一个用于包裹Navigator的小部件,它允许你拦截和处理返回操作。在没有PopScope之前,如果你想要在用户按下返回键时执行一些特定的逻辑,你可能需要在每个页面上单独处理。而PopScope可以让你在一个地方集中管理这些逻辑,使得代码更加简洁和易于维护。

smileKH的博客 4402

phpstudy自定义安装mysql8.3并启动

下载压缩包文件然后按下面的图片一步一步操作选择版本,选择第一个压缩包文件,下载下载完成后,解压到phpstudy环境目录下

互联网碎碎念 2801

Java实战:绿盾加密文件批量解密工具Ldterm的实现与优化

本文详细介绍了基于Java开发的绿盾加密文件批量解密工具Ldterm的实现与优化过程。通过分析绿盾加密机制,结合Java流处理能力,实现了高效的文件解密方案,并分享了多线程处理、内存优化等性能提升技巧,适用于企业级数据迁移与备份场景。

weixin_29314405的博客 488

Flutter 弃用 WillPopScope 使用 PopScope 替代方法

了解如何在 Flutter 3.16 中将弃用的 WillPopScope 替换为 PopScope,并学习如何升级您的 Flutter 应用程序。详细指南和最佳实践,帮助您顺利迁移和更新您的导航逻辑。

会煮咖啡的猫咪 2882

4、I3C协议详解

I3C最初的设计目的是为移动设备创建一个能够使用多个传感器的单一接口。随着现代化移动设备对于传感器数量的增加以及对性能的提高,I2C和SPI已经达到了他们所能支持的临界点,而I3C的出现就是为了解决这一问题,I3C可以在同一根主线上支持更多的传感器设备,而且不会因为要支持中断或睡眠模式而增加额外的逻辑信号。I3C可以在更低功耗的情况下提供更快的传输速率,该特性的提升不止是对移动设备,对其他的嵌入式设备也都是很大的帮助。例如穿戴设备,需要在有限的物理空间中使用多个传感器并且要求更小的耗电。 一、简述..

迟子涵925的博客 2万+

在Flutter中使用WillPopScope*

在Flutter中使用WillPopScope 作者:坚果 公众号:“大前端之旅” 华为云享专家,InfoQ签约作者,OpenHarmony布道师,,华为云享专家,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,鸿蒙,小程序,安卓,VUE,JavaScript。 突然,在阅读特定内容时,。令人惊讶的是,您发现您的手指掠过后退按钮。页面弹出, 这可能不是什么大问题,如果您可以前进到页面并从您停止的地方继续,但如果应用程序已刷新屏幕或设置为在您进

坚果的博客 2687

UE5实战:如何用Mesh Shader优化你的游戏场景渲染(附性能对比)

本文深入探讨了在UE5中利用Mesh Shader优化游戏场景渲染的实战方法。通过对比传统渲染管线与GPU Driven Pipeline,详细阐述了Mesh Shader如何通过任务着色器和网格着色器两阶段并行处理,实现更精细的meshlet级剔除,从而显著降低Draw Call和GPU带宽,提升渲染性能。文章附有具体的性能对比数据与代码示例,为开发者优化高复杂度场景提供了有效路径。

sunny的博客 296

Serdes之什么是(CDR)?

光收发器和电收发器使用的是我们所说的串行数据通信。在这种通信方式中,数据位是按顺序一个接一个地传输的。光收发器和电收发器使用的是我们所说的串行数据通信。在这种通信方式中,数据位是按顺序一个接一个地传输的。目前市场上大多数收发器都没有专用的时钟输入,因此时钟恢复和数据重新定时等功能是在收发器外部(即在主板上)进行的。接收端则需要恢复时钟以采样串行线上的数据。为了实现这一点,接收端需要一个与输入数据频率大致相同的时钟。通过使参考时钟与输入数据信号的跳变相位对齐,可以生成一个恢复的时钟。这被称为时钟恢复。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 2389

【自学Flutter】24 WillPopScope 的使用

24 WillPopScope 的使用 1.源代码 import 'package:flutter/material.dart'; void main () => runApp(MyApp()); class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState()...

技术宅-Nopi的博客 1813

2025年7月12日全国青少年信息素养大赛图形化(Scratch)编程小学低年级组复赛真题+答案解析

2025年7月12日全国青少年信息素养大赛图形化(Scratch)编程小学低年级组复赛真题+答案解析

伶俐角少儿编程 710

25、 Flutter Widgets 之 WillPopScope

为了避免用户误触返回按钮而导致 App 退出,在很多 App 中都拦截了用户点击返回键的按钮,然后进行一些防误触判断,比如当用户在某一个时间段内点击两次时,才会认为用户是要退出(而非误触)。Flutter中可以通过WillPopScope来实现返回按钮拦截,我们看看WillPopScope的默认构造函数: const WillPopScope({ ... required WillPopCallback onWillPop, required Widget child }) onWill

wywinstonwy的专栏 4350

肖特基二极管的反向恢复过程

本博客简述肖特基二极管反向恢复过程。

记得诚 1万+

OpenClaw Windows 安装指南

好的,我来一步一步带你在 Windows 上安装 OpenClaw。

m0_60605453的博客 549

【Flutter】【widget】返回拦截 WillPopScope

返回拦截,作用?1.在设备点击返回的时候做一个拦截2.比如在编辑框编辑了内容,不小心点击了返回按键,那么这个时候直接返回就看导致内容的清除,如果这个时候弹出一个窗口,提示用户,给用户选择,这样体验机会好很多欢迎关注,留言,咨询,交流!

自动人生博客 1233

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Flutter 中的 WillPopScope 小部件:全面指南

是一个可以包裹任何 widget 的小部件,它监听用户尝试关闭当前页面的行为(通常是通过点击 Android 的返回按钮或 iOS 的导航栏上的返回按钮)。通过,你可以控制是否允许这个操作发生,或者在允许之前执行一些自定义逻辑。// 执行退出前的验证逻辑},child: ... // 其他页面内容。

smileKH的博客 2027

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

flutter WillPopScope监听无效

在return那里将WillPopScope放在最外层

weixin_44911775的博客 1510

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Flutter中WillPopScope导航返回拦截

一.Flutter中WillPopScope简介 1.WillPopScope源码查看 const WillPopScope({ Key? key, required this.child, //页面显示的内容 required this.onWillPop, //当前页面将退出 }) onWillPop是一个回调函数,当用户点击返回按钮时被调用。该回调需要返回一个Future对象,如果返回的值为false,则当前路由不出栈(不会返回);反之为true时,则当前路由

j086924的专栏 2404

Flutter导航返回拦截WillPopScope

当用户在某一个时间段内点击两次时,才会认为用户是要退出(而非误触)。Flutter中可以通过WillPopScope来实现返回按钮拦截, onWillPop是一个回调函数,当用户点击返回按钮时被调用(包括导航返回按钮及Android物理返回按钮)。该回调需要返回一个Future对象,如果返回的Future最终值为false时,则当前路由不出栈(不会返回);最终值为true时,当前路由出栈退出。 示例: 当用户在1秒内点击两次返回按钮时,则退出;如果间隔超过1秒则不退出,并重新记时。 import 'pack

Android_小菜菜的博客 569

[Flutter 学习六] 导航返回拦截(WillPopScope) :

为了避免用户误触返回按钮而导致APP退出,在很多APP中都拦截了用户点击返回键的按钮,然后进行一些防误触判断,比如当用户在某一个时间段内点击两次时,才会认为用户是要退出(而非误触)。Flutter中可以通过WillPopScope来实现返回按钮拦截,我们看看WillPopScope的默认构造函数: const WillPopScope({ ... @required WillPopCall...

一条咸鱼 4496

Flutter WillPopScope在iOS系统上无法手势返回

Flutter WillPopScope在iOS系统上无法手势返回

PRliu的博客 1560

(Flutter)导航返回拦截: WillPopScope

1. 计算两个日期的时间差 DateTime.now().difference(_lastPressedAt!) //使用 difference 方法,就能获取到所有时间单位的差值 其中,DateTime 的 difference 方法 返回的是一个 Duration 对象。Duration 是用来表示 时间跨度(差值)的类。 参考文章: Flutter 计算两个日期的时间差 小白不止如此 :Dart)用法补充 2. 导航返回拦截: WillPopScope DateTime? _lastPresse

weixin_45625639的博客 377

flutter 再按一次退出 导航返回拦截WillPopScope

为了避免用户误触返回按钮而导致APP退出,在很多APP中都拦截了用户点击返回键的按钮,当用户在某一个时间段内点击两次时,才会认为用户是要退出(而非误触)。Flutter中可以通过WillPopScope来实现返回按钮拦截,我们看看WillPopScope的默认构造函数: const WillPopScope({ ... @required WillPopCallback onWillPop...

倚栏静望的博客 1902
上一篇: Flutter LayoutBuilder
下一篇: XCode 14.3 升级之后的问题 打包失败
Leonardo_Fibonacci
博客等级 码龄10年 110粉丝 247原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值