Flutter Wave Curve AppBar

This is an Appbar has a wave background. It is drawn in ClipPath.

class MainAppBar extends StatelessWidget implements PreferredSizeWidget {
  final Text title;
  final double barHeight = 50.0;

  MainAppBar({Key key, this.title}) : super(key: key);

  Size get preferredSize => Size.fromHeight(kToolbarHeight + 100.0);

  Widget build(BuildContext context) {
    return PreferredSize(
        child: ClipPath(
          clipper: WaveClip(),
          child: Container(
            color: Colors.blue,
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
        preferredSize: Size.fromHeight(kToolbarHeight + 100));

class WaveClip extends CustomClipper<Path> {
  Path getClip(Size size) {
    Path path = new Path();
    final lowPoint = size.height - 30;
    final highPoint = size.height - 60;

    path.lineTo(0, size.height);
        size.width / 4, highPoint, size.width / 2, lowPoint);
        3 / 4 * size.width, size.height, size.width, lowPoint);
    path.lineTo(size.width, 0);

    return path;

  bool shouldReclip(CustomClipper<Path> oldClipper) {
    return false;
Scroll to Top

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.