Flutter 如何以中心向外的弧形夹住容器底部
我想剪掉容器的底部,如图所示 我已经对圆圈进行了编码,但是我如何才能完成剩下的部分呢Flutter 如何以中心向外的弧形夹住容器底部,flutter,flutter-layout,Flutter,Flutter Layout,我想剪掉容器的底部,如图所示 我已经对圆圈进行了编码,但是我如何才能完成剩下的部分呢 class MyClipper extends CustomClipper<Path> { @override Path getClip(Size size) { var path = Path(); path.lineTo(0.0, size.height - 90); var firstControlPoint = Offset(size.width / 5,
class MyClipper extends CustomClipper<Path> {
@override
Path getClip(Size size) {
var path = Path();
path.lineTo(0.0, size.height - 90);
var firstControlPoint = Offset(size.width / 5, size.height);
var firstPoint = Offset(size.width / 2, size.height);
path.quadraticBezierTo(firstControlPoint.dx, firstControlPoint.dy,
firstPoint.dx, firstPoint.dy);
var secondControlPoint = Offset(size.width - (size.width / 5), size.height);
var secondPoint = Offset(size.width, size.height - 90);
path.quadraticBezierTo(secondControlPoint.dx, secondControlPoint.dy,
secondPoint.dx, secondPoint.dy);
path.lineTo(size.width, 0);
path.close();
return path;
}
@override
bool shouldReclip(CustomClipper<Path> oldClipper) => false;
}
类MyClipper扩展了CustomClipper{
@凌驾
路径getClip(大小){
var path=path();
path.lineTo(0.0,size.height-90);
var firstControlPoint=偏移量(size.width/5,size.height);
var firstPoint=偏移量(size.width/2,size.height);
path.quadraticBezierTo(firstControlPoint.dx,firstControlPoint.dy,
firstPoint.dx,firstPoint.dy);
var secondControlPoint=偏移量(size.width-(size.width/5),size.height);
var secondPoint=偏移量(size.width,size.height-90);
path.quadraticBezierTo(secondControlPoint.dx,secondControlPoint.dy,
secondPoint.dx,secondPoint.dy);
path.lineTo(size.width,0);
path.close();
返回路径;
}
@凌驾
bool shouldReclip(CustomClipper oldClipper)=>false;
}
经过数小时的定制裁剪器代码实验,我终于做到了。
下面是最后一段像图片一样剪辑的代码
@override
Path getClip(Size size) {
var path = Path();
path.lineTo(0.0, size.height - 45);
path.lineTo(size.width / 2.7 , size.height -45);
var firstControlPoint = Offset(size.width / 2.5, size.height - 5);
var firstPoint = Offset(size.width / 2, size.height);
path.quadraticBezierTo(firstControlPoint.dx, firstControlPoint.dy,
firstPoint.dx, firstPoint.dy);
var secondControlPoint = Offset(size.width / 1.6 , size.height-5);
var secondPoint = Offset(size.width / 1.6 , size.height -45);
path.quadraticBezierTo(secondControlPoint.dx, secondControlPoint.dy,
secondPoint.dx, secondPoint.dy);
path.lineTo(size.width , size.height -45);
path.lineTo(size.width, 0.0);
path.close();
return path;
}
现在,剪裁的角不是圆角。我必须找到解决办法 经过几个小时的定制裁剪器代码实验,我终于做到了。 下面是最后一段像图片一样剪辑的代码
@override
Path getClip(Size size) {
var path = Path();
path.lineTo(0.0, size.height - 45);
path.lineTo(size.width / 2.7 , size.height -45);
var firstControlPoint = Offset(size.width / 2.5, size.height - 5);
var firstPoint = Offset(size.width / 2, size.height);
path.quadraticBezierTo(firstControlPoint.dx, firstControlPoint.dy,
firstPoint.dx, firstPoint.dy);
var secondControlPoint = Offset(size.width / 1.6 , size.height-5);
var secondPoint = Offset(size.width / 1.6 , size.height -45);
path.quadraticBezierTo(secondControlPoint.dx, secondControlPoint.dy,
secondPoint.dx, secondPoint.dy);
path.lineTo(size.width , size.height -45);
path.lineTo(size.width, 0.0);
path.close();
return path;
}
现在,剪裁的角不是圆角。我必须找到解决办法 你能解释一下吗。。。圆圈图标有大小的盒子吗?它只用于底部剪辑。我会为你更新我的答案。是的,请提供详细答案。。感谢您的时间堆栈溢出元素没有被点击。。。这个解决方案不起作用…你能解释一下吗。。。圆圈图标有大小的盒子吗?它只用于底部剪辑。我会为你更新我的答案。是的,请提供详细答案。。感谢您的时间堆栈溢出元素没有被点击。。。此解决方案不起作用。。。