仅将底部阴影颤动到容器
flutter only bottom shadow to container
我尝试了很多解决方案,但我无法得到我想要的。
我申请了这个答案,但没有得到正确的回复。容器顶部仍有阴影。我怎样才能实现它?
而且我还尝试用 Material
包围我的小部件。还是不能解决问题
Material(
elevation: 5,
child: Container(
height: 50,
child: _buildEloAndLevel(),
),
),
Material(
elevation: 5,
child: Container(
height: 50,
child: _buildEloAndLevel(),
// add boxShadow
decoration: BoxDecoration(
boxShadow: [
color: Colors.black54,
blurRadius: 15.0,
],
),
),
),
这将在 Container
周围创建 shadow
个 15 units
。现在,可以使用 offset
属性 移动阴影。因为,我们不希望顶部有阴影,我们可以将它向下移动 15 units
。
Material(
elevation: 5,
child: Container(
height: 50,
child: _buildEloAndLevel(),
// add boxShadow
decoration: BoxDecoration(
boxShadow: [
color: Colors.black54,
blurRadius: 15.0,
offset: Offset(0, 15), // horizontally move 0, vertically move 15,
],
),
),
),
您需要做的就是调整您的偏移值。而且我认为您不需要用 Material
.
包装它
Offset 是阴影相对于盒子的位移。它需要 2 个双精度值,Offset(x, y);
示例:
Container(
height: 50.0,
decoration: BoxDecoration(
boxShadow: <BoxShadow>[
BoxShadow(
color: Colors.black54,
offset: Offset(15.0, 20.0),
blurRadius: 20.0,
)
],
color: Colors.red,
),
),
我的提示:要确保阴影不会出现在容器的顶部,请确保模糊半径不更大 比你的 Offset 的 y 值。
我不知道其他示例是否真的只为底部设置阴影,但这里有一个已知的解决方案:
Container(
height: 50.0,
decoration: BoxDecoration(
boxShadow: <BoxShadow>[
BoxShadow(
color: Colors.black54,
blurRadius: 20.0,
spreadRadius: -20.0,
offset: Offset(0.0, 25.0),
)
],
color: Colors.red,
),
),
使用blurRadius
设置阴影的模糊度,然后设置spreadRadius
为负blurRadius
然后使用dy
属性Offset()
构造函数,你将它设置为正值来控制阴影底部。
我尝试了很多解决方案,但我无法得到我想要的。
而且我还尝试用 Material
包围我的小部件。还是不能解决问题
Material(
elevation: 5,
child: Container(
height: 50,
child: _buildEloAndLevel(),
),
),
Material(
elevation: 5,
child: Container(
height: 50,
child: _buildEloAndLevel(),
// add boxShadow
decoration: BoxDecoration(
boxShadow: [
color: Colors.black54,
blurRadius: 15.0,
],
),
),
),
这将在 Container
周围创建 shadow
个 15 units
。现在,可以使用 offset
属性 移动阴影。因为,我们不希望顶部有阴影,我们可以将它向下移动 15 units
。
Material(
elevation: 5,
child: Container(
height: 50,
child: _buildEloAndLevel(),
// add boxShadow
decoration: BoxDecoration(
boxShadow: [
color: Colors.black54,
blurRadius: 15.0,
offset: Offset(0, 15), // horizontally move 0, vertically move 15,
],
),
),
),
您需要做的就是调整您的偏移值。而且我认为您不需要用 Material
.
Offset 是阴影相对于盒子的位移。它需要 2 个双精度值,Offset(x, y);
示例:
Container(
height: 50.0,
decoration: BoxDecoration(
boxShadow: <BoxShadow>[
BoxShadow(
color: Colors.black54,
offset: Offset(15.0, 20.0),
blurRadius: 20.0,
)
],
color: Colors.red,
),
),
我的提示:要确保阴影不会出现在容器的顶部,请确保模糊半径不更大 比你的 Offset 的 y 值。
我不知道其他示例是否真的只为底部设置阴影,但这里有一个已知的解决方案:
Container(
height: 50.0,
decoration: BoxDecoration(
boxShadow: <BoxShadow>[
BoxShadow(
color: Colors.black54,
blurRadius: 20.0,
spreadRadius: -20.0,
offset: Offset(0.0, 25.0),
)
],
color: Colors.red,
),
),
使用blurRadius
设置阴影的模糊度,然后设置spreadRadius
为负blurRadius
然后使用dy
属性Offset()
构造函数,你将它设置为正值来控制阴影底部。