https://www.cnblogs.com/joe235/p/11235838.html
使用 ClipPath 路径裁切组件
child: ClipPath( *//*路径裁切组件
clipper: BottomClipper(), *//*路径
child: Container(
color: Colors.red,
height: 260.0,
)
),
class BottomClipper extends CustomClipper<Path>{
@override
Path getClip(Size size){
var path = Path();
path.lineTo(0, 0); *//*第*1*个点
path.lineTo(0, size.height-50.0); *//*第*2*个点
var firstControlPoint = Offset(size.width/2, size.height);
var firstEdnPoint = Offset(size.width, size.height-50.0);
*//* 增加了一个二次贝塞尔曲线段曲线从当前点到给定的点(*x2*, *y2*),使用控制点(*x1*, *y1*)。
path.quadraticBezierTo(
firstControlPoint.dx,
firstControlPoint.dy,
firstEdnPoint.dx,
firstEdnPoint.dy
);
path.lineTo(size.width, size.height-50.0); *//*第*3*个点
path.lineTo(size.width, 0); *//*第*4*个点
return path;
}
@override
bool shouldReclip(CustomClipper<Path> oldClipper) {
return false;
}
}
网友评论