我刚刚将两个应用程序更新到 Flutter 3.22,卡片和底部导航栏的颜色消失了。现在这些元素的背景颜色是透明的。有什么解决办法吗?
正如我在发行说明中看到的那样,他们对主题进行了更改,但没有什么会影响它。
我尝试使用新的材质主题生成器更新主题,但没有任何变化。
这是小部件的示例代码:
@override
Widget build(BuildContext context) {
return Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
child: InkWell(
onTap: () {
// [...]
},
borderRadius: BorderRadius.circular(12),
child: Padding(
padding: const EdgeInsets.all(18.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// List of widgets like ListTiles, rows of text, etc
],
)),
),
);
}
这是其中一张卡片,但问题在于涉及
Theme.of(context).colorScheme.surfaceTint
的所有小部件。我认为更新有一些错误。
我发现问题了!该主题由官方 Material Theme Builder 网站提供,并且似乎该构建器缺少一些参数
在生成的文件中,参数
surfaceContainerLow
和其他参数未在 toColorScrheme()
类内的 MaterialTheme
函数中声明。
我自己将这些参数添加到构建器函数中,现在一切正常!