请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

WillPopScope已被弃用

老师好,在我学习到本章节的时候,WillPopScope已被弃用

图片描述

看注释说用PopScope取代
图片描述

于是尝试用PopScope

图片描述

图片描述

结果发现像视频中那样使用WillPopScope的话,可以通过安卓物理按键返回(虽然要点击两下返回键,我用的虚拟机),也可以通过appBar的BackButton返回(从注册页返回登录页)。但是换成PopScope的话,可以正常通过appBar的BackButton返回(从注册页返回登录页),安卓物理按键无论按多少次都没有任何动作。

是我使用的方式不对?还请老师指教,谢谢老师。

正在回答 回答被采纳积分+3

4回答

CrazyCodeBoy 2025-02-25 01:56:30

将:

WillPopScope(
  onWillPop: () async =>
      !(await navigatorKey.currentState?.maybePop() ?? ),

改为:

PopScope(
  canPop: ,
  onPopInvokedWithResult: (didPop,result) async {
    (didPop) {
      ;
    }
     bool canPop= await navigatorKey.currentState?.maybePop() ?? ;
    debugPrint($canPop);
    (!canPop) {
      SystemNavigator.pop();
    }
  },

记得导入下:

import 'package:flutter/services.dart';


1 回复 有任何疑惑可以回复我~
CrazyCodeBoy 2025-02-21 08:56:39

https://img1.sycdn.imooc.com/szimg/fb41d66709bcb37b30160724.jpg

参考下。

0 回复 有任何疑惑可以回复我~
提问者 LBruce 2025-02-20 10:40:28

https://img1.sycdn.imooc.com/szimg/37274b6709b695f614190216.jpg


https://img1.sycdn.imooc.com/szimg/385ad16709b695f613980652.jpg


PopPage的canPop,只接受一个bool值


0 回复 有任何疑惑可以回复我~
CrazyCodeBoy 2025-02-19 23:54:09

https://img1.sycdn.imooc.com/szimg/fb41d66709bcb37b30160724.jpg

参考下。

0 回复 有任何疑惑可以回复我~
  • 提问者 LBruce #1
    老师这个我试过了,其实不行的,canPop只接受一个bool值
    回复 有任何疑惑可以回复我~ 2025-02-20 10:39:00
  • 提问者 LBruce #2
    具体详情,我附图到评论区中了
    回复 有任何疑惑可以回复我~ 2025-02-20 10:40:59
  • CrazyCodeBoy 回复 提问者 LBruce #3
    好的,我看看。
    回复 有任何疑惑可以回复我~ 2025-02-21 08:52:02
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号