解释一些有关在颤动中移动文本的代码

时间:2019-12-29 11:59:06

标签: flutter dart

我正在寻找如何在给定宽度的小部件中移动文本? 我在:

中找到了不错的作品

How get moving text in widget with given width

但我不了解startTimer方法。 如果可能的话,有人解释这个方法: 非常感谢。

  void startTimer() {
    if (_key.currentContext != null) {
      double widgetWidth =
          _key.currentContext.findRenderObject().paintBounds.size.width;
      double widgetHeight =
          _key.currentContext.findRenderObject().paintBounds.size.height;

      timer = Timer.periodic(Duration(milliseconds: _timerRest), (timer) {
        double maxScrollExtent = scrollController.position.maxScrollExtent;
        double pixels = scrollController.position.pixels;
        if (pixels + _moveDistance >= maxScrollExtent) {
          if (widget.scrollAxis == Axis.horizontal) {
            position = (maxScrollExtent -
                        screenWidth * widget.ratioOfBlankToScreen +
                        widgetWidth) /
                    2 -
                widgetWidth +
                pixels -
                maxScrollExtent;
          } else {
            position = (maxScrollExtent -
                        screenHeight * widget.ratioOfBlankToScreen +
                        widgetHeight) /
                    2 -
                widgetHeight +
                pixels -
                maxScrollExtent;
          }
          scrollController.jumpTo(position);
        }
        position += _moveDistance;
        scrollController.animateTo(position,
            duration: Duration(milliseconds: _timerRest), curve: Curves.linear);
      });
    }
  }

1 个答案:

答案 0 :(得分:1)

startTimer每_timerRest毫秒告诉滚动控制器跳转到一个新位置,如果文本到达末尾,它将重新开始。

希望有帮助。