我有一个Container
,父节点是CustomPaint
。在CustomPaint
中,我只是在Container
的一半周围画一条线。该线的一半宽度在Container
内,另一半宽度在Container
外。我想把线完全画在Container
之外。我如何才能实现这种行为?先谢谢你了。
下面是它现在的样子:
下面是我的代码:
Center(
child: CustomPaint(
painter: SeatDecorator(),
child: Container(
width: 150,
height: 150,
color: Colors.blue.withOpacity(0.5),
),
),
)
我的CustomPainter:
class SeatDecorator extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint()
..color = Colors.blue
..strokeCap = StrokeCap.square
..style = PaintingStyle.stroke
..strokeJoin = StrokeJoin.round
..strokeWidth = 8;
Path path = Path();
path.moveTo(0, size.height / 2);
path.lineTo(0, 0);
path.lineTo(size.width, 0);
path.lineTo(size.width, size.height / 2);
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) {
return true;
}
}
1条答案
按热度按时间7eumitmz1#
笔画中心使用最后一个点在画布上绘制,您可以在定位线条时计数
strokeWidth
的一半。您可以使用ShapeBorder处理此类情况。