Flutter 导航返回按钮
二级页面的返回按钮
Flutter 版本:2.5.1
二级页面的返回按钮,是空的,只能左滑返回。
自定义一个返回按钮:
@overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: const Text("文本示例"),// 返回按钮leading: BackButton(onPressed: () {Navigator.pop(context);})),body: const TextBody(),),);}
如果页面很多,每个页面都需要自定义,代码也都是重复的。
既然都需要,那就可以抽取出来,封装一下。
在自定义的 Widget 中,返回一个
@overrideWidget build(BuildContext context) {return BackButton(onPressed: () {Navigator.pop(context);});}
当点击 返回
时,结果界面 全黑
了,一脸问号❓❓❓
疑问
当 Navigator.pop(context);
放在具体界面时,上下文 context
与封装的上下文 context
不是同一个。
- 1.自定义按钮时,打调试断点,查看
context
@overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: const Text("文本示例"),// 返回按钮leading: BackButton(onPressed: () {Navigator.pop(context); // 在这行打了个调试断点,查看 context})),body: const TextBody(),),);}
- 2.封装返回按钮时,打调试断点,查看
context
@overrideWidget build(BuildContext context) {return BackButton(onPressed: () {Navigator.pop(context); // 在这行打了个调试断点,查看 context});}
对比发现
外部的 context
树结构中存在 MaterialApp
内部的 context
树结构中 不
存在 MaterialApp
- 3.封装返回按钮时,把外部的
context
传入,在内部使用
import 'package:flutter/material.dart';class JHBackButton extends StatelessWidget {const JHBackButton({Key? key, required BuildContext context}): _scontext = context,super(key: key);final BuildContext _scontext;@overrideWidget build(BuildContext context) {return BackButton(onPressed: () {Navigator.pop(_scontext); // 在这行打了个调试断点,查看 context});}
}
再次打断点调试,查看 context
这会跟第一张图上的就匹配
了
搞定!
小编辑器
一个字:小巧
Flutter 导航返回按钮相关推荐
- flutter 隐藏返回按钮 自定义返回按钮
自定义返回按钮 //改变颜色 Widget build(BuildContext context) {return Scaffold(appBar: AppBar(leading: BackButto ...
- flutter 一行代码取消 返回按钮
flutter 取消 返回按钮 @overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(automati ...
- Swift中隐藏某一页面的返回按钮
最近在尝试用swift去编写一个小项目,由于用惯了oc,一时间无法适应.最基本的隐藏导航返回按钮都无法实现,在网上搜索半天,没有找到合适的方法,可能是我词不达意吧.最后终于在一篇文章中找到了解决方案. ...
- 隐藏导航栏或返回按钮
1 - (void)viewWillAppear:(BOOL)animated 2 { 3 [super viewWillAppear:animated]; 4 [self.navigationCon ...
- IOS设置导航栏返回按钮,并添加事件返回主页面
IOS设置导航栏返回按钮,并添加事件返回主页面 前提是已经push了一个viewController了.才能使用. XXXTableViewController 里面书写 - (void)viewDi ...
- Swift - 重写导航栏返回按钮
// 重写导航栏返回按钮方法 func configBackBtn() -> Void { // 返回按钮 let backButton = UIButton(type: .custom) // ...
- IOS 自定义导航栏标题和返回按钮标题
IOS中自定义导航栏标题: UILabel *titleText = [[UILabel alloc] initWithFrame: CGRectMake(160, 0, 120, 50)]; tit ...
- 自定义iOS7导航栏背景,标题和返回按钮文字颜色
在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem 更改导航栏的背景和文字Col ...
- iOS10 的适配问题,你遇到了吗?导航栏标题和返回按钮神奇的消失了
苹果系统升级后好多应用都发了新版本来适配,今天就来分享一下我的适配历程. 首先是出现的问题: 1.push一个控制器,返回按钮和标题神奇的消失了,打开三维视图(比较坑的是有的版本老到打不开三维视图 ) ...
最新文章
- 南大新规:博士生在公众号发文且阅读量超1万即可参评国奖!
- CSS继承选择器与包含选择器的比较
- ctab法提取dna流程图_【分子】DNA的提取与检测(下)——质粒DNA
- ASP.Net/C# - PayPal接口文档
- Numpy Math functions
- 使用Entity Framework和Web API的ASP.NET Core Blazor CRUD
- 西工大学计算机专业考研容易吗,2022年西北工业大学计算机专业考研成功经验...
- multsim仿真1:利用multisim化简逻辑函数
- 数据挖掘概念与技术_第三版_课后习题
- diskgenius创建efi分区_无损分区大小调整
- SENTAURUS_2018_06
- 图像检索代码python_python-图像检索
- 2018 AI产业界大盘点
- 微信公众账号开发教程(三) 实例入门:机器人(附源码) ——转自http://www.cnblogs.com/yank/p/3409308.html...
- 去除水晶报表小数点最后多余的0
- 本人搜集的不用fq的免费学术技术资源网站
- 豪江智能更新招股书:2021年净利润、毛利率双降,表现不及同行
- 360度全景拼接之成像模型与柱面投影
- 链接挖掘算法之PageRank算法和HITS算法
- 从一个URL到页面渲染完成发生了什么?
热门文章
- 懂车帝推出朋友圈功能,你怎么看?
- 用Python写爬虫有哪些好处?
- 一加6android p降级包,国内最快!一加6更新Android P稳定版,官方确认一加6T会预装...
- Coap协议RFC7252英文版地址 + 常见工业通信协议集合
- 批处理中使用变量嵌套/命令嵌套实现随机密码
- 数据结构 线性 非线性_线性和非线性数据结构之间的区别
- sklearn中Logistics Regression的coef_和intercept_的具体意义
- UbuntuKylin常用快捷键
- 解决不显示menu图标问题
- linux中启动tomcat后浏览器无法访问的解决方法之防火墙关闭