这一集里的 changeStatusBar 已经不适用了,该怎么改

来源:12-6 代码优化实现Dark Mode适配

demonCry

2022-09-19

仓库里最新的对应代码如下

///修改状态栏
void changeStatusBar(
    {color: Colors.white,
      StatusStyle statusStyle: StatusStyle.DARK_CONTENT,
      BuildContext? context}) {
  if (context != null) {
    //fix Tried to listen to a value exposed with provider, from outside of the widget tree.
    var themeProvider = Provider.of<ThemeProvider>(context, listen: false);
    if (themeProvider.isDark()) {
      statusStyle = StatusStyle.LIGHT_CONTENT;
      color = HiColor.dark_bg;
    }
  }
  var page = HiNavigator.getInstance().getCurrent()?.page;
  //fix Android切换 profile页面状态栏变白问题
  if (page is ProfilePage) {
    color = Colors.transparent;
  } else if (page is VideoDetailPage) {
    color = Colors.black;
    statusStyle = StatusStyle.LIGHT_CONTENT;
  }
  //沉浸式状态栏样式
  var brightness;
  if (Platform.isIOS) {
    brightness = statusStyle == StatusStyle.LIGHT_CONTENT
        ? Brightness.dark
        : Brightness.light;
  } else {
    brightness = statusStyle == StatusStyle.LIGHT_CONTENT
        ? Brightness.light
        : Brightness.dark;
  }
  SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light.copyWith(
    statusBarColor: Colors.transparent,
    statusBarBrightness: brightness,
    statusBarIconBrightness: brightness,
  ));
}

color 完全没用?

context 搜了下全局也没有哪个调用的时候传了, 包括视频里的首页部分最新的代码里也没传context图片描述

… 这种错乱的情况不是第一次了, 老师就不能剪一下重录这些部分吗… 我们这些新来的支持正版期望的并不是这种教学服务啊

这不是打击我们这种买正版支持老师的人的信心吗?

评论也是 感觉老师完全是为了应付慕课的要求? 回答不少同学的问题都是“堵代码式”的, 很多回答就没深入思考过学生为什么有这种疑问 是哪里知识点或者周边的知识点理解不到位 ,很多回答根本不在点子上 (诚然很多情况下学员自己的描述也不够那么精准, 但如果真能表述那么精准知道自己是撒问题, 为什么不直接stackoverflow呢? )

几百大洋入正版 这种教学服务的态度 只能说糟蹋学员的心

哎 哎 哎!

写回答

1回答

CrazyCodeBoy

2022-09-20

1.color是给之前引入的flutter_statusbar_manager用的,后来flutter_statusbar_manager不支持高版本的flutter,所以替换成了系统的SystemChrome.setSystemUIOverlayStyle方案,在这种情况下不需要用到了color,后面的更新会将color移除。
2.context在home_page的第59行代码中使用使用的,主要是为了当页面返回到首页恢复首页的状态栏样式,可以参考下:https://git.imooc.com/coding-487/fa-pub/src/master/lib/page/home_page.dart#L59
0
0

Flutter高级进阶实战-仿哔哩哔哩-掌握Flutter高阶技能

一次性掌握Flutter高阶技能+商业级复杂项目架构设计与开发方案

1722 学习 · 870 问题

查看课程