问题标签 [flutter-custompaint]
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.
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)说话一样?
一个简单的代码示例和反例会很棒(而不是详尽的明确解释!)
flutter - 颤振自定义油漆中的自定义画笔图案
我在颤振中创建了一个绘图应用程序。它非常适合简单的绘图,但问题是我想在绘图中实现画笔图案,并且在CustomPainter类中没有自定义画笔样式/笔划图案的选项。请任何帮助将不胜感激。
谢谢