【问题标题】:In Flutter, how do you set *all* the scaffold background color at once?在 Flutter 中,如何一次设置 *all* 脚手架背景颜色?
【发布时间】:2021-03-22 18:04:36
【问题描述】:

目前,我使用以下方法设置每个屏幕的背景颜色:

  @override
  Widget build(BuildContext context) => Scaffold(
    backgroundColor: Colors.white,
    body: ...
  );

每次创建新屏幕时,我总是忘记添加此背景颜色设置器。这是一个小小的不便,但如果有一种方法可以为所有屏幕设置一次此背景颜色,我真的很感激,除非被特定ScaffoldbackgroundColor 属性覆盖。我尝试在MaterialAppcolor 属性上设置颜色,但看起来没有任何效果。

【问题讨论】:

    标签: flutter scaffold


    【解决方案1】:

    您应该将覆盖背景颜色参数的自定义 ThemeData 传递给您的 MaterialApp,这样就可以解决问题:

    return MaterialApp(
            // your other app initialization code
            theme: ThemeData(scaffoldBackgroundColor: Colors.white),
        );
    

    您可以在官方文档中阅读更多关于 ThemData 和 Flutter 应用主题的信息 https://flutter.dev/docs/cookbook/design/themes

    【讨论】:

    • 嗯,backgroundColor,还是scaffoldBackgroundColor?还是不管哪一个?
    • 是的,我的错,应该是scaffoldBackgroundColor。 backgroundColor 负责诸如进度条的剩余部分之类的东西(因此仅在某些颤振小部件中使用它)
    • @ChenLiYong 为什么不直接阅读Scaffold.backgroundColor官方文档?
    • @pskink 因为对我有用的是scaffoldBackgroundColor,而不是Scaffold.backgroundColor
    • @ChenLiYong 这在docs 中有描述:"backgroundColor 属性 Color backgroundColor final 位于整个 Scaffold 之下的 Material 小部件的颜色。默认情况下,主题的 ThemeData.scaffoldBackgroundColor。"
    猜你喜欢
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 2013-11-22
    • 1970-01-01
    • 2017-10-04
    • 2021-07-19
    相关资源
    最近更新 更多