Flutter中ThemeData设置primaryColor后AppBar颜色未生效问题
问题原因
Flutter 3.0+版本默认启用Material 3设计规范,旧版ThemeData中配置的primaryColor属性不再被AppBar组件默认读取,所以你修改该属性不会生效。
可行解决方案
你可以根据自己的需求选择任意一种方案:
方案1:适配旧教程的Material 2逻辑
在ThemeData中关闭Material 3开关,原有primaryColor配置就会生效:
return MaterialApp( theme: ThemeData( useMaterial3: false, primaryColor: Colors.red, ), home: const InputPage(), );
方案2:按Material 3规范全局配置主题
通过colorScheme或者appBarTheme全局指定AppBar背景色:
return MaterialApp( theme: ThemeData( // 方式A:通过ColorScheme批量配置主题色 colorScheme: ColorScheme.fromSeed(seedColor: Colors.red), // 方式B:单独指定AppBar的全局样式 appBarTheme: const AppBarTheme( backgroundColor: Colors.red, ), ), home: const InputPage(), );
方案3:单独修改当前页面的AppBar颜色
直接给对应AppBar组件添加backgroundColor属性:
appBar: AppBar( title: const Text('BMI CALCULATOR'), backgroundColor: Colors.red, ),
内容的提问来源于stack exchange,提问作者EhCanadianGuy27 COD
相关产品推荐
相关产品推荐

