【问题标题】:How do I Change Status Bar Color only on a Specific Page in Flutter如何仅在 Flutter 中的特定页面上更改状态栏颜色
【发布时间】:2021-10-06 02:31:54
【问题描述】:

如何在 Flutter 中仅更改特定页面上的状态栏颜色?我尝试使用AnnotatedRegion,但它更改了整个应用程序的状态栏颜色。

【问题讨论】:

标签: flutter flutter-layout


【解决方案1】:

我把我的主要views/screens 包装成这样。

StatusBarColorChanger(
      isDark: true ,
      child: Scaffold(

如果您需要更多自定义,我为此创建了一个小部件。 你已经包装了每一页


class StatusBarColorChanger extends StatelessWidget {
  final Widget child;

  final bool isDark;

  StatusBarColorChanger({
    Key? key,
    required this.child,
    this.isDark = false,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return AnnotatedRegion<SystemUiOverlayStyle>(
      value: SystemUiOverlayStyle(
        // For Android.
        // Use [light] for white status bar and [dark] for black status bar.

        statusBarIconBrightness: isDark
            ? Platform.isAndroid
                ? Brightness.light
                : Brightness.dark
            : Brightness.dark,
        //  Platform.isAndroid? isDark ?  Brightness.light : Brightness.dark: ,

        statusBarColor: isDark ? Colors.black : Colors.white,

        // For iOS.
        // Use [dark] for white status bar and [light] for black status bar.
        statusBarBrightness: isDark
            ? Platform.isAndroid
                ? Brightness.dark
                : Brightness.light
            : Brightness.light,
      ),
      child: Platform.isAndroid
          ? SafeArea(
              child: child,
            )
          : child,
    );
  }
}

【讨论】:

    猜你喜欢
    • 2021-07-31
    • 2023-03-05
    • 2020-02-04
    • 2021-02-04
    • 2018-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    相关资源
    最近更新 更多