我有一个小部件,用于创建渐变效果:
class GradientContainer extends StatelessWidget {
final child;
GradientContainer({@required this.child});
@override
Widget build(BuildContext context) {
return Stack(children: [
Positioned(
left: 5,
top: 17,
bottom: 5,
right: 9,
child: ClipRRect(
borderRadius: BorderRadius.circular(4),
child: Container(
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
stops: [
0.0,
1.0
],
colors: [
Colors.black.withOpacity(0.0),
Theme.of(context).scaffoldBackgroundColor.withOpacity(0.8),
])),
),
)),
child,
]);
}
}
这很好用,直到用户切换到深色主题时,无法清晰地看到渐变。因此,我想做一些类似于 Theme.of(context).scaffoldBackgroundColor.invertColor().withOpacity(0.8)
的事情,这样我就可以得到正文的反转颜色,从而使渐变在任何主题下都具有良好的对比度。有人知道怎么做吗?我已经尝试在网上查找,但是我找到的所有内容都是如何在图像上应用反转滤镜。