我在下面写了一个用于顶部和底部阴影框装饰的代码,这意味着将有两个容器。您可以通过两种方式使用此解决方案,
-
嵌套容器,就是把你的图片放到Container(topShadow) => Container(bottomShadow)=> Image
-
将您的 2 个容器和您的图像放入 Stack 中,将容器的顶部和底部对齐,并为您的容器提供固定的高度,就像您在图片中标记的区域一样。 (确保容器位于堆栈内的图像项下方,否则阴影将被图像覆盖)
decoration: new BoxDecoration(
gradient: new LinearGradient(
end: const Alignment(0.0, -1),
begin: const Alignment(0.0, 0.6),
colors: <Color>[
const Color(0x8A000000),
Colors.black12.withOpacity(0.0)
],
),
),
decoration: new BoxDecoration(
gradient: new LinearGradient(
end: const Alignment(0.0, -1),
begin: const Alignment(0.0, 0.6),
colors: <Color>[
const Color(0x8A000000),
Colors.black12.withOpacity(0.0)
],
),
),
第二种方法(第2点)工作代码:
Stack(
children: <Widget>[
//image code
Image(..),
//top grey shadow
Align(
alignment: Alignment.topCenter,
child: Container(
height: 50,
width: double.infinity,
decoration: new BoxDecoration(
gradient: new LinearGradient(
end: const Alignment(0.0, 0.4),
begin: const Alignment(0.0, -1),
colors: <Color>[
const Color(0x8A000000),
Colors.black12.withOpacity(0.0)
],
),
),
),
),
//bottom grey shadow
Align(
alignment: Alignment.bottomCenter,
child: Container(
height: 50,
width: double.infinity,
decoration: new BoxDecoration(
gradient: new LinearGradient(
end: const Alignment(0.0, -1),
begin: const Alignment(0.0, 0.4),
colors: <Color>[
const Color(0x8A000000),
Colors.black12.withOpacity(0.0)
],
),
),
),
),
],),