Flutter 安卓状态栏那点事儿

本文介绍了如何在Flutter中实现沉浸式状态栏,并解决状态栏文字颜色与底部导航栏颜色自定义的问题。通过使用AnnotatedRegion和SystemUiOverlayStyle,可以实现对状态栏和导航栏样式的精细控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

沉浸式状态栏

在main.dart里加入如下代码便可实现
    runApp(MyApp());
  if (DifUtil.isAndroid()) {
    // 以下两行 设置android状态栏为透明的沉浸。
    // 写在组件渲染之后,是为了在渲染后进行set赋值,覆盖状态栏,写在渲染之前MaterialApp组件会覆盖掉这个值。
    SystemUiOverlayStyle systemUiOverlayStyle =
        SystemUiOverlayStyle(statusBarColor: Colors.transparent);
    SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
  }
问题1:假如登录界面背景色是白色,而状态栏是透明的,这个时候就看不到状态栏(如下图),那么在沉浸式状态下,想要修改状态栏文字颜色怎么办?

  • 使用AnnotatedRegion组件包裹Scaffold,支持dark和light两种颜色(如下图)
    return AnnotatedRegion<SystemUiOverlayStyle>(
      // 设置沉浸式状态栏文字颜色
      value:  SystemUiOverlayStyle.dark,
      child: Scaffold(
            ...
          )
    );
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值