Flutter 一个更好的方法,使一个自定义弯曲的应用程序栏在颤振

Flutter 一个更好的方法,使一个自定义弯曲的应用程序栏在颤振,flutter,dart,flutter-appbar,Flutter,Dart,Flutter Appbar,我正在尝试制作一个定制的弧形应用程序条,如下例所示 经过多次尝试,我终于成功了 源代码: 类CustomShapeOrder扩展了连续矩形边框{ @凌驾 路径getOuterPath(Rect Rect,{TextDirection TextDirection}){ 最终双内圆公差=150.0; 路径=路径(); lineTo路径(0,直线高度); 路径立方体(矩形宽度/1.5-40,矩形高度+内环宽度-40,矩形宽度/1.5+40, 直高+内环宽-40,直宽/1.5+75,直高+50);

我正在尝试制作一个定制的弧形应用程序条,如下例所示

经过多次尝试,我终于成功了

源代码:

类CustomShapeOrder扩展了连续矩形边框{
@凌驾
路径getOuterPath(Rect Rect,{TextDirection TextDirection}){
最终双内圆公差=150.0;
路径=路径();
lineTo路径(0,直线高度);
路径立方体(矩形宽度/1.5-40,矩形高度+内环宽度-40,矩形宽度/1.5+40,
直高+内环宽-40,直宽/1.5+75,直高+50);
path.quadraticBezierTo(
直宽/1.5+(内环宽/2)+30,直高+35,直宽,直高);
path.lineTo(rect.width,0.0);
path.close();
返回路径;
}
}

有没有一种简单的方法来制作SVG示例。

我可以得出以下结果:

以下是路径:

double x = 150, y = 45, r = 0.5;
Path path = Path()
  ..addRRect(RRect.fromRectAndCorners(rect))
  ..moveTo(rect.bottomRight.dx - 30, rect.bottomCenter.dy)
  ..relativeQuadraticBezierTo(((-x / 2)+(x/6)) * (1 - r), 0, -x / 2 * r, y * r)
  ..relativeQuadraticBezierTo(-x / 6 * r, y * (1 - r), -x / 2 * (1 - r), y * (1 - r))
  ..relativeQuadraticBezierTo(((-x / 2)+(x/6)) * (1 - r), 0, -x / 2 * (1 - r), -y * (1 - r))
  ..relativeQuadraticBezierTo(-x/6*r , -y * r, -x / 2 * r, -y * r);

这里有一篇很好的文章介绍了制作形状的基本知识:

谢谢,理解路径有点困难。我认为
Path
是修改形状的最好方法,而
Path
在我们需要弯曲的时候非常有用