【问题标题】:How I add a parameter to this class in Flutter?如何在 Flutter 中向此类添加参数?
【发布时间】:2020-12-02 19:42:55
【问题描述】:

这是我要添加参数的类。例如,在调用 MyProgressLine() 时,我想传递一个整数并在 Offset 方法中使用它。

class MyProgressLine extends CustomPainter {
  MyProgressLine();

  @override
  void paint(Canvas canvas, Size size) {
    Paint paint = Paint()
      ..color = Colors.green
      ..strokeWidth = 3.0
      ..style = PaintingStyle.stroke;

    double endPointsRadius = 5.0;

    // Draws starting point
    canvas.drawCircle(Offset.zero, endPointsRadius, paint);
    canvas.drawLine(
        Offset(endPointsRadius, 0.0), Offset(endPointsRadius + 25, 0.0), paint);

    // Draws current progress line
    paint.style = PaintingStyle.fill;
    canvas.drawCircle(Offset(endPointsRadius + 25, 0.0), 3.0, paint);

    // Draws endpoint
    paint.style = PaintingStyle.stroke;
    paint.color = Colors.grey.withOpacity(0.5);
    canvas.drawLine(Offset(endPointsRadius + 25, 0.0), Offset(100, 0.0), paint);
    canvas.drawCircle(
        Offset(100 + endPointsRadius, 0.0), endPointsRadius, paint);
  }

  @override
  bool shouldRepaint(CustomPainter oldDelegate) => false;
}

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    改变你的构造函数:

    MyProgressLine({int offsetBy = 0});
    

    然后在需要的地方使用offsetBy

    【讨论】:

      【解决方案2】:
      class MyProgressLine extends CustomPainter {
        final int myParam;
        MyProgressLine(this.myParam);
      
        @override
        void paint(Canvas canvas, Size size) {
            // ... 
            // Draws starting point
            canvas.drawCircle(Offset.zero, endPointsRadius, paint);
            canvas.drawLine(
                Offset(endPointsRadius, 0.0), Offset(endPointsRadius + 25 + myParam, 0.0), paint);
      
            // ...
      
          }
      
        @override
        bool shouldRepaint(CustomPainter oldDelegate) => false;
      }
      

      每当您使用 MyProgressLine 时,请这样称呼它: MyProgressLine(x); 其中 x 是您想要的任何整数。

      【讨论】:

        猜你喜欢
        • 2018-04-10
        • 2019-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-13
        相关资源
        最近更新 更多