Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何以中心向外的弧形夹住容器底部_Flutter_Flutter Layout - Fatal编程技术网

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;
  }

现在,剪裁的角不是圆角。我必须找到解决办法

你能解释一下吗。。。圆圈图标有大小的盒子吗?它只用于底部剪辑。我会为你更新我的答案。是的,请提供详细答案。。感谢您的时间堆栈溢出元素没有被点击。。。这个解决方案不起作用…你能解释一下吗。。。圆圈图标有大小的盒子吗?它只用于底部剪辑。我会为你更新我的答案。是的,请提供详细答案。。感谢您的时间堆栈溢出元素没有被点击。。。此解决方案不起作用。。。