第一百五十六回 如何实现沉浸式状态栏


我们在上一章回中介绍了如何获取位置相关的内容,本章回中将介绍 如何实现沉浸式状态栏.闲话休提,让我们一起Talk Flutter吧。

概念介绍

在使用App的过程中,有些App的页面颜色和手机最上方的状态栏颜色不一样,如果让它们的颜色相同,那就会让人感觉App融入到了手机系统中。这种感觉就是沉浸式状态栏,我们在本章回中将介绍如何实现这种沉浸式状态。

使用方法

使用Flutter开发的App时状态栏的颜色会和页面上方的AppBar的背景颜色保持一致,如果没有AppBar那么就会和当前页面的背景色保持一致。这个是系统自动实现的功能,我们什么也不需要做,不过颜色相同了状态栏还会有一层阴影效果,让状态栏突出显示。我们需要做的就是去掉这层阴影效果,让它们保持一样。

Flutter提供了相关的接口可以修改状态栏的style,我们只需要修改style就可以创建出不同效果。稍后我们会通过示例代码来演示具体的实现方法。

示例代码

void main() {
///让状态栏和程序的appBar融为一体构成沉浸式效果
  ///SystemChrome这个类及其方法只能在main方法中运行,其它地方无法使用
  SystemUiOverlayStyle systemUiOverlayStyle = const SystemUiOverlayStyle(
    ///这两个属性可以控制状态栏为透明色,它可以和appBar的颜色一致,主要是去掉了阴影效果
    statusBarColor: Colors.transparent,
    statusBarBrightness: Brightness.light,
    ///修改状态栏中文字的颜色为黑色,没有效果
    // statusBarIconBrightness: Brightness.dark,
  );
  SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);

 runApp();
}

上面的代码中先是创建了透明风格的style,然后通过系统提供的接口修改了状态栏的style,进而实现了沉浸式状态栏效果。不过还有一些细节需要补充:

  1. 这个代码需要运行在程序的main方法中,并且是在runApp()方法调用前运行;
  2. 使用这个代码时最好去掉页面上方的AppBar,不然AppBar会影响视觉;
  3. 沉浸式状态只在Android平台上使用,IOS默认就是这种效果,不需要专门去设置;

有看官说AppBar还有作用,不能去掉,如何处理AppBar呢?看官莫急,只需要把AppBar中的forceMaterialTransparency属性设置为true就可以。这样就可以使AppBar和状态栏以及屏幕融为一体。

我在这里就不演示程序的运行效果了,建议大家自己动手去实践,真正检验一下沉浸式状态栏的效果。

看官们,与"如何实现沉浸式状态栏"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值