博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flutter自定义标题栏之处理状态栏高度
阅读量:5930 次
发布时间:2019-06-19

本文共 1235 字,大约阅读时间需要 4 分钟。

App在很多情况下由于各种需求需要自定义标题栏,而在能够构建Android和IOS应用的Flutter中,如果不在Scaffold中使用AppBar会发现默认是沉浸式。

猜想:我们使用自定义标题栏好像需要知道状态栏的高度,我看到网上很多人想要自定义标题栏,却老是去找怎么获取状态栏的高度解惑:其实并不用获取状态栏的高度,你想AppBar也是状态栏,它也需要知道状态栏的高度,它需要说明Flutter已经帮我们获取到了

接下来一步一步来看

一、怎么自定义标题栏

轻车熟路的就直接看第二步

自定义MAppBar类

class MAppBar extends StatefulWidget implements PreferredSizeWidget {  MAppBar({@required this.child}) : assert(child != null);  final Widget child;  @override  Size get preferredSize {    return new Size.fromHeight(56.0);  }  @override  State createState() {    return new MAppBarState();  }}class MAppBarState extends State
{ @override Widget build(BuildContext context) { return widget.child; }}

使用

class GoodsPageState extends State
{ @override Widget build(BuildContext context) { return new Scaffold( appBar: new MAppBar( child: new Text("我是标题"), ), body: new Text("我是内容"), ); }}

效果

这里写图片描述

二、增加状态栏

修改代码

class MAppBarState extends State
{ @override Widget build(BuildContext context) { return new SafeArea( top: true, child: widget.child, ); }}

说明

/// Whether to avoid system intrusions at the top of the screen, typically the/// system status bar.final bool top;

效果

这里写图片描述

效果已经很明显了

你可能感兴趣的文章
Javascript异步数据的同步处理方法
查看>>
快速排序——Java
查看>>
unity游戏与我
查看>>
187. Repeated DNA Sequences
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
基于事件驱动的DDD领域驱动设计框架分享(附源代码)
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
行列式的乘法定理
查看>>
JFreeChart开发_用JFreeChart增强JSP报表的用户体验
查看>>
度量时间差
查看>>
MySQL 5.6为什么关闭元数据统计信息自动更新&统计信息收集源代码探索
查看>>
apache prefork模式优化错误
查看>>
jmeter高级用法例子,如何扩展自定义函数
查看>>
通过jsp请求Servlet来操作HBASE
查看>>
JS页面刷新保持数据不丢失
查看>>
清橙A1202&Bzoj2201:彩色圆环
查看>>
使用data pump工具的准备
查看>>
springMVC---级联属性
查看>>