我正在尝试实现类似于Apple Watch戒指的戒指。我正在使用Canvas和CustomPaint小部件将这些圆环绘制为弧形。
canvas.drawArc(
Rect.fromCircle(
center: Offset(size.width / 2, size.height / 2), radius: radius - 10),
-pi / 2,
completion,
false,
Paint()
..style = PaintingStyle.stroke
..strokeWidth = 20
..color = color
..strokeCap = StrokeCap.round,
我有一个有状态的小部件,正在使用它来增加铃声。效果很好。
但是,我还有环的背景,该背景也使用Canvas绘制,该Canvas由弧,圆,阴影和自定义路径组成。我是 使用Stack小部件将一个放置在另一个顶部:
Stack(children: <Widget>[
RingsBackground(),
CustomPaint(
size: Size(300, 300),
painter: CirclePainter(streak: streak),
),
])
当我执行此操作并增加并完成一些圆时,我的渲染毛刺变得非常糟糕,但仅在Android而不是iOS上。有趣的是,如果我在android上关闭我的应用程序并重新打开(或切换到另一个应用程序并切换回),它可以正常工作。这就是小故障。
有人知道如何解决此问题或创建解决方法吗?我做错了吗?
答案 0 :(得分:0)
因此,我发现只有在使用画布在CustomPaint小部件中提供的宽度和高度上绘制时才会发生这种情况。一旦我对所有内容进行了重组以使其符合这些范围,一切都将正常工作。