我已经看过this和this和this,但他们没有回答我的问题。我需要在其下面的Container
just上标高,而不是全部标高。
这是我现在拥有的:
我的最终目标是消除一周中大部分时间的阴影。
我使用this答案中的代码在我的Container
上实现阴影效果,但我不希望它一直存在,只是在圆角的底部而不是顶部。任何帮助,将不胜感激。
如果只想添加阴影,则将BoxDecoration
与BoxShadow
结合使用即可完成
...
...
body: Container(
margin: EdgeInsets.all(8),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8.0),
color: Colors.white,
boxShadow: [
BoxShadow(
color: Colors.black,
blurRadius: 2.0,
spreadRadius: 0.0,
offset: Offset(2.0, 2.0), // shadow direction: bottom right
)
],
),
child: Container(width: 100, height: 50) // child widget, replace with your own
),
...
...
使用ClipRRect
去除阴影效果,并在margin
的底部添加Container
以克服底部的ClipRRect
仅显示阴影效果。
示例:
import "package:flutter/material.dart";
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Padding(
padding: const EdgeInsets.all(30.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(5.0),
child: Container(
height: 100.0,
margin: const EdgeInsets.only(bottom: 6.0), //Same as `blurRadius` i guess
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(5.0),
color: Colors.white,
boxShadow: [
BoxShadow(
color: Colors.grey,
offset: Offset(0.0, 1.0), //(x,y)
blurRadius: 6.0,
),
],
),
),
),
),
),
);
}
}
结果: