如何在Flutter中创建带圆角的自定义blured形状

时间:2018-05-07 10:16:06

标签: dart flutter clip flutter-layout

我想绘制一个类似于下图中标记区域的自定义形状。有没有办法用模糊效果剪辑这个自定义形状,然后指定角落的半径?

This marked shaped

1 个答案:

答案 0 :(得分:8)

这不是您能找到的最佳解决方案,但它可以使用: full example

enter image description here

class customclipper extends CustomClipper<Path> {
  @override
  Path getClip(Size size) {
    var path = new Path();
    path.lineTo(0.0, size.height - 20);
    path.quadraticBezierTo(0.0, size.height, 20.0, size.height);
    path.lineTo(size.width - 20.0, size.height);
    path.quadraticBezierTo(size.width, size.height, size.width, size.height - 20);
    path.lineTo(size.width, 50.0);
    path.quadraticBezierTo(size.width, 30.0, size.width - 20.0, 30.0);
    path.lineTo(20.0, 5.0);
    path.quadraticBezierTo(0.0, 0.0, 0.0, 20.0);
    return path;
  }

  @override
  bool shouldReclip(CustomClipper<Path> oldClipper) => false;
}
  1. 我使用 quadraticBezierTo
  2. 创建了所有圆角
  3. 我在ClipPath中创建了一个Container
  4. 我使用Colors.white70作为容器颜色