我正在寻找如何在给定宽度的小部件中移动文本? 我在:
中找到了不错的作品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);
});
}
}
答案 0 :(得分:1)
startTimer每_timerRest毫秒告诉滚动控制器跳转到一个新位置,如果文本到达末尾,它将重新开始。
希望有帮助。