我可以使用strokeCap属性将两端都更改为方形或圆形,但不知道如何为每一端应用定制的设置(即一端为圆形,另一端为方形)。
怎样才能达到这个效果呢?
import 'package:flutter/material.dart';
class LinePainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
var height = size.height;
var width = size.width;
var paint = Paint()
..color = Colors.red
..strokeWidth = 20
..style = PaintingStyle.stroke
..strokeCap = StrokeCap.round;
var path = Path();
path.moveTo(width * 0.25, height / 2);
path.lineTo(width * 0.75, height / 2);
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) {
return false;
}
}
class Example extends StatefulWidget {
const Example({Key? key}) : super(key: key);
@override
State<Example> createState() => _ExampleState();
}
class _ExampleState extends State<Example> with SingleTickerProviderStateMixin {
@override
Widget build(BuildContext context) {
return Scaffold(
body: CustomPaint(
painter: LinePainter(),
child: Container(),
),
);
}
}
1条答案
按热度按时间3ks5zfa01#
没有现有的PaintingStyle或StrokeCap选项可用于仅设置一个端点,目前这两个端点的控制方式相同。
如果你只想在一端画圆帽,另一种方法是画一条没有圆帽的线,然后画一个圆与线的一端重叠。