【发布时间】:2019-02-14 15:43:53
【问题描述】:
我有一个列:带有文本的标题,带有图像的正文,带有文本的页脚,所有小部件都有透明背景。 我想使用主图像的模糊来设置背景,但我一直走到死胡同。
在某些情况下,这很简单,但在我的场景中,图像可以是任何大小和纵横比,我需要用列包裹效果。
这是我的两次失败的尝试:
方法一
我有一个将图像作为第一项的堆栈,然后是带有 ImageFilter 模糊的 BackdropFilter,然后是我的列。 这可行,但由于图像大小(可以是任何大小),图像会从列下方流出。 我想将它限制在我的 Column 的高度。
return Container(
child: Stack(
alignment: AlignmentDirectional.topCenter,
children: <Widget>[
Positioned.fill(child: Image.network(_imgUrl)),
BackdropFilter(
filter: ImageFilter.blur(sigmaX: 10.0, sigmaY: 10.0),
child: Container(
decoration: BoxDecoration(color: Colors.white.withOpacity(0.0)),
)),
Container(
child: Column(
mainAxisSize: MainAxisSize.min,
// https://stackoverflow.com/a/41846093/3429021
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Header(),
BodyPhoto(),
Footer()
],
),
),
],
),
方法二
将列放入带有装饰图像的容器中,可以完美地调整图像大小,但我无法应用模糊效果。
(_streamItem 是我的 Column 包裹在一个容器中)
body: Container(child: _streamItem,
decoration: new BoxDecoration(image: DecorationImage(
image: NetworkImage(_streamItem.imgUrl),
fit: BoxFit.cover)
)
)
有什么想法吗?
【问题讨论】:
标签: android widget flutter blur uiblureffect