问题标签 [flutter-custompainter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
195 浏览

flutter - CustomPainter.shouldRepaint() 在 Flutter 中是如何工作的?

在 Flutter 中,在创建CustomPainter时,有一个覆盖方法 shouldRepaint() ,您可以返回 true 或 false ......大概是为了告诉系统是否重新绘制视图。

docs中,该方法的描述是:

shouldRepaint(covariant CustomPainter oldDelegate) → bool 每当向 RenderCustomPaint 对象提供自定义画家委托类的新实例时调用,或者在使用自定义画家委托类的新实例创建新的 CustomPaint 对象时调用(相当于同样的事情,因为后者是根据前者来实现的)。[...]

除了它返回一个布尔值之外,我基本上不理解任何其他内容。这让我很头疼!我还怀疑深入研究“自定义画家委托类”或“RenderCustomPaint 对象”的定义不会是一种启发性的体验。

我很困惑,因为:

  • 我认为我们不必担心小部件何时“应该重新绘制”,因为 Flutter 应该根据自己复杂的优化决策来决定何时何地重新渲染小部件树。

  • 我认为paint() 方法是您定义“这就是该视图自身绘制的方式,(始终以及在必要时)”的地方

  • 我发现的所有示例都只是从此方法返回 false ......但我注意到使用 true 与 false 时的不同行为。

  • 如果我们总是返回 false,那么它如何重新绘制?(即使是假的,它也会重新绘制)

  • 如果我们唯一可用的逻辑是将“oldDelegate”与(某事?)进行比较,那么为什么我们需要重写该方法呢?

  • 我还没有看到任何示例来说明您为什么或如何返回 TRUE,以及为了做出该决定,此类示例的逻辑是什么样的。

一个知识渊博的人为什么以及如何决定返回 false?

一个知识渊博的人为什么以及如何决定回归真实?

谁能解释一下,就像你在和一个 13 岁的孩子(不是 Linus Torvalds)说话一样?

一个简单的代码示例和反例会很棒(而不是详尽的明确解释!)

0 投票
0 回答
22 浏览

dart - 如何使用 customPainter 在颤动中绘制时钟标记点?

我一直在开发一个应用程序,在该应用程序中,我必须展示一个根据移动设备的旋转进行动画处理的指南针。真正的问题是我对 customPainter 非常陌生,并且对此有非常肤浅的了解确实让我感到困难。

请帮我画出如下图所示的代码

在此处输入图像描述

(忽略圆心的“ N ”)

也让我知道如何改变山雀的原点中心

0 投票
0 回答
23 浏览

flutter - 如何在颤动中保存自定义画家生成的图像?

我正在使用自定义画家在图像上绘制,绘制后,我想保存绘制的图像,我该怎么做?,我认为我应该将记录器传递给画布,但在这种情况下,我使用的是覆盖绘制函数的画布,我不知道如何将记录器传递给画布。

这是我的代码在此处输入图像描述

0 投票
2 回答
24 浏览

flutter - 自定义画家在屏幕外绘制新传入数据?

我正在我的应用程序中为麦克风实现波形可视化。

上面for-loop为我从麦克风获得的每个分贝值画线。当我使用麦克风获取数据时,分贝列表会变大,并开始在屏幕外绘制。

所以我的问题是如何将之前绘制的线条移回屏幕内以绘制新的传入分贝值?

0 投票
0 回答
25 浏览

android - 使用 Flutter 的 CustomPaint 类或使用资产是否占用资源更少?

我正在为 Android 和 iOS 构建一个简单的群聊应用程序。对于按钮上的符号,它们大多是简单的形状。我可以将 JPEG/PNG 作为资产添加到应用程序中,但我注意到 Flutter 有这个 CustomPaint 类。使用这个类是否占用更少的资源?

0 投票
0 回答
22 浏览

flutter - 如何使用 Flutter 跳过带有 CustomPaint 的空格?

我试图在颤振中实现 ARC,但其中有“洞”。

我有什么: 屏幕图像

我想要的: 获取图像

我的代码:

你们知道我该怎么办吗?我正在尝试使用 CustomPaint,但接受其他方法我需要这个图表,图表库不支持我需要的这个图表。

0 投票
1 回答
37 浏览

flutter - 如何使定制的油漆像被吃掉的部分一样扑腾?

我想得到什么

我想和自定义画家一起做这样的事情。我怎么能画出来?对我来说不是问题边界,渐变。我无法绘制资产卡的左侧部分。请帮忙!

0 投票
0 回答
27 浏览

flutter - 如何在 Flutter 中展开包含 CustomPainter 的 Stack 的所有子项

假设在 Flutter 中我们有一个 Stack,其中包含:

  1. 大小为 Size.infinite 的 CustomPainter
  2. 任何其他不是自定义画家的小部件(我们也希望以与自定义画家完全相同的方式填充所有可用空间

在此示例中,我为项目 2 使用了一个图标:

现在,很明显,我们还没有得到想要的结果——自定义画家是“扩展的” ,但图标不是

但是我没有运气尝试了以下所有方法:

  • 用 Expanded 包装图标(导致异常)
  • 用 Expanded 包装 Stack 小部件(导致异常)
  • 将 Icon 的大小定义为 Size.infinite (不会构建,因为 size 参数需要双精度)
  • 使用fit: StackFit.expand作为 Stack 的参数,但这似乎只是使图标居中并且不会改变它的大小。