【发布时间】:2021-08-20 14:22:01
【问题描述】:
试图模糊屏幕的下半部分,因为没有指导或帮助。
要求:-
我不想在背景过滤器子容器中提供特定的宽度或高度。
已经尝试过的:
Stack(
fit: StackFit.expand,
children: [
Image.asset("assets/images/authpage.jpg",
height: double.infinity, width: double.infinity, fit: BoxFit.fill),
Positioned(
top: 500,
child: ClipRect(
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0),
child: Container(
alignment: Alignment.center,
color: Colors.black.withOpacity(0.1),
),
),
),
),
],
);
还尝试了着色器蒙版,但它会填充颜色而不是模糊部分。
Stack(
fit: StackFit.expand,
children: [
ShaderMask(
shaderCallback: (rect) {
return LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [Colors.white, Colors.transparent],
).createShader(Rect.fromLTRB(0, 0, rect.width, rect.height));
},
blendMode: BlendMode.dstIn,
child: Image.asset(
'assets/images/authpage.jpg',
height: 400,
fit: BoxFit.fill,
),
),
],
);
【问题讨论】:
-
嗨!为什么不使用已经模糊的背景图片?
-
@Mol0ko 是的,就性能而言,您的回答很好。但我的要求不同。
标签: flutter dart flutter-layout