0

我是 Flutter 的新手,我正在尝试实现 Custompainter 以从列表中的数据中绘制交互式图形。应用程序生成一个值列表,我想用图表线将它们可视化。

它看起来像这样:

(...)
class Aplikacja extends StatefulWidget {
  const Aplikacja({Key? key}) : super(key: key);

  @override

  State<Aplikacja> createState() => _AplikacjaState();
}

class _AplikacjaState extends State<Aplikacja> {

(...) 

//here the list is being generated and modified, let's say it contains [X, Y, Z, (...), n]

(...)

然后,在同一个类中,我在 Container 中有一个 Custompainter,我想用它来绘制图形以可视化列表值

(...)
Container(
  height: 160,
      width: double.infinity,
      child:
      CustomPaint(
         foregroundPainter: LinePainter(),
      ),
  ),

然后我有一个单独的 LinePainter 类

class LinePainter extends CustomPainter {

  @override
  void paint(Canvas canvas, Size size) {
    var paint = Paint()
      ..color = Colors.teal
      ..strokeWidth = 10;

    var path = Path();
(...)
    //here is a painter logic that draws a line. 
    //  I want it to respond to changing values **X**, **Y**, **Z** and so on, from the above mentioned list
 
  (...)
  }

  @override
  bool shouldRepaint(CustomPainter oldDelegate) {
    return true;
  }

我正在寻找简单的解决方案,使 LinePainter 类能够“监听”Statefull 小部件中类的数据。我见过复杂的解决方法,但我相信有一种更简单的方法可以做到这一点。

对不起我的英语不好。

4

0 回答 0