JBa*_*aba 2 dart flutter flutter-animation
我想制作如下所示的良好阴影效果,
在互联网上找到的所有示例甚至都无法接近上述设计。
经过长时间的反复试验,我可以进行以下操作。还是做不出内心的阴影。如果有人能指导我如何破译这些设计,那就太好了。
用于制作上述按钮的代码,
Widget buildBackButton() {
double size = 47;
return Stack(
children: <Widget>[
Container(
width: size,
height: size,
decoration: BoxDecoration(
color: Colors.white,
shape: BoxShape.circle,
boxShadow: [
BoxShadow(
color: Colors.black26,
offset: Offset(20, 20),
blurRadius: 40,
),
BoxShadow(
color: Colors.white,
offset: Offset(-20, -20),
blurRadius: 25,
)
]),
child: Material(
color: Color(0xffe0eafb),
borderRadius: BorderRadius.circular(size),
elevation: 10,
child: Padding(
padding: const EdgeInsets.all(3.0),
child: ClipOval(
clipper: MClipper(),
),
),
),
),
Container(
width: 45.0,
height: 45.0,
padding: EdgeInsets.only(left: 2, top: 2),
child: new RawMaterialButton(
shape: new CircleBorder(),
fillColor: Color(0xffe0eafb),
elevation: 10.0,
child: Icon(
Icons.arrow_back,
color: Colors.black,
),
onPressed: () {},
)),
],
);
}
class MClipper extends CustomClipper<Rect> {
@override
Rect getClip(Size size) {
return Rect.fromCircle(
center: Offset(size.width / 2, size.height / 2),
radius: min(size.width, size.height) / 2);
}
@override
bool shouldReclip(CustomClipper<Rect> oldClipper) {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢。
这是代码:
Widget build(BuildContext context) {
return Material(
elevation: 2,
type: MaterialType.button,
color: Colors.transparent,
borderRadius: BorderRadius.circular(1000),
child: Container(
decoration: BoxDecoration(
border: Border.all(color: Color(0xff6C96F9), width: 2.0),
borderRadius: BorderRadius.circular(1000),
gradient: RadialGradient(
center: Alignment(0.55, 0.55),
focalRadius: 64,
colors: [
Color(0xff789DF9),
Color(0xff477FF8),
],
),
),
child: GestureDetector(
onTap: () {},
child: Padding(
padding: const EdgeInsets.all(24.0),
child: Icon(
Icons.pause,
color: Colors.white,
),
),
),
),
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1388 次 |
| 最近记录: |