【发布时间】:2021-09-02 23:07:03
【问题描述】:
我想给AppBar加个logo,但是不管我写成leading还是title,总是比原来的要暗一些。 AppBar 的颜色正好是#338585,这也是我在body 的body 内时的.png 图片的背景色。
为什么图片看起来如此不同? 是否有一个 BackdropFilter 自动应用于 AppBar,或者它可能与我的文件有关?
这是重现问题的方法(createMaterialColor 从一种颜色生成样本,但 AppBar 是正确的,所以这可能不是问题):
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: createMaterialColor(Color(0xFF338585)),
),
home: Scaffold(
appBar: AppBar(
leading: Image.asset('assets/logo.png'),
),
body: Image.asset('assets/logo.png'),
),
);
}
MaterialColor createMaterialColor(Color color) {
List strengths = <double>[.05];
final swatch = <int, Color>{};
final int r = color.red, g = color.green, b = color.blue;
for (int i = 1; i < 10; i++) {
strengths.add(0.1 * i);
}
strengths.forEach((strength) {
final double ds = 0.5 - strength;
swatch[(strength * 1000).round()] = Color.fromRGBO(
r + ((ds < 0 ? r : (255 - r)) * ds).round(),
g + ((ds < 0 ? g : (255 - g)) * ds).round(),
b + ((ds < 0 ? b : (255 - b)) * ds).round(),
1,
);
});
return MaterialColor(color.value, swatch);
}
}
【问题讨论】:
-
你也可以添加代码吗?
-
当然,我编辑了问题。