title: How to have two different stroke type using Paint class?
body: <p>The image (white one) is actually how I want to build that blue container.</p>
  <p>So, How can I get two different stroke type (bottom: Dash, other: solid).</p>
  <p>Using paint like this</p>
  <pre class="lang-dart prettyprint-override"><code>Paint paint = Paint()
        ..style = PaintingStyle.stroke
        ..strokeWidth = 10.0
        ..strokeJoin = StrokeJoin.miter
        ..color = Colors.black;
  
  </code></pre>
  <p><strong>What I've got</strong></p>
  <p><a href="https://i.stack.imgur.com/aKGSE.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/aKGSE.png" alt="What I got. " /></a></p>
  <p><strong>What I want</strong></p>
  <p><a href="https://i.stack.imgur.com/YHCe0.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/YHCe0.png" alt="What I want." /></a></p>
  <p><strong>Full Code</strong></p>
  <pre class="lang-dart prettyprint-override"><code>import 'package:flutter/material.dart';
   
  class UpperCustomClipper extends CustomClipper&lt;Path&gt; {
    @override
    Path getClip(Size size) {
      Path _path = Path();
   
      double radius = 44.0, w = size.width, h = size.height;
   
      _path.moveTo(radius, 0); // 1
      _path.lineTo(w - radius, 0); // 2
      _path.arcToPoint(Offset(w, radius), radius: Radius.circular(radius)); //3
      _path.lineTo(w, h - radius); // 4
      _path.arcToPoint(Offset(w - radius, h), // 5
          radius: Radius.circular(radius),
          clockwise: false);
      _path.lineTo(radius, h); // 6
      _path.arcToPoint(Offset(0, h - radius), //7
          radius: Radius.circular(radius),
          clockwise: false);
      _path.lineTo(0, radius); // 8
   
      _path.arcToPoint(Offset(radius, 0), radius: Radius.circular(radius)); // 9
   
      _path.close();
      return _path;
    }
   
    @override
    bool shouldReclip(covariant CustomClipper&lt;Path&gt; oldClipper) =&gt; false;
  }
   
  class UpperCustomPainter extends CustomPainter {
    @override
    void paint(Canvas canvas, Size size) {
      Path _path = Path();
   
      double radius = 44.0, w = size.width, h = size.height;
   
      _path.moveTo(radius, 0); // 1
      _path.lineTo(w - radius, 0); // 2
      _path.arcToPoint(Offset(w, radius), radius: Radius.circular(radius)); //3
      _path.lineTo(w, h - radius); // 4
      _path.arcToPoint(Offset(w - radius, h), // 5
          radius: Radius.circular(radius),
          clockwise: false);
      _path.lineTo(radius, h); // 6
      _path.arcToPoint(Offset(0, h - radius), //7
          radius: Radius.circular(radius),
          clockwise: false);
      _path.lineTo(0, radius); // 8
   
      _path.arcToPoint(Offset(radius, 0), radius: Radius.circular(radius)); // 9
   
      _path.close();
   
      Paint paint = Paint()
        ..style = PaintingStyle.stroke
        ..strokeWidth = 10.0
        ..strokeJoin = StrokeJoin.miter
        ..color = Colors.black;
   
      canvas.drawPath(_path, paint);
    }
   
    @override
    bool shouldRepaint(covariant CustomPainter oldDelegate) =&gt; false;
  }
  </code></pre>