首页 > 解决方案 > 颤振画布,如何在子小部件上绘画?

问题描述

我正在尝试在子文本框小部件上绘制红点,如下所示:

在此处输入图像描述

为此,我用小部件包装了子小CustomPaint()部件:

 return CustomPaint(
      painter: DotsPainter(), //draws red dots based on child's size
      child: child, //textbox
    );

但结果是这样的:

在此处输入图像描述

如何使 CustomPainter “覆盖”其子小部件?

谢谢。

标签: fluttercanvasflutter-layoutcustom-painting

解决方案


CustomPaint 有 2 种可能的画家:

当被要求绘画时,CustomPaint首先要求它的画家在当前画布上绘画,然后它绘画它的孩子,然后,在绘画它的孩子之后,它要求它的foregroundPainter绘画。

(强调我的)

因此,如果您将您的画家移动到foregroundPainter,它应该可以正常工作:

return CustomPaint(
  foregroundPainter: DotsPainter(), //draws red dots based on child's size
  child: child, //textbox
);

推荐阅读