initState method
void
initState(
)
override
Implementation
@override
void initState() {
super.initState();
_verticalController.addListener(() {
if (caller.isEmpty ||
DateTime.now().millisecondsSinceEpoch - lastCall >
widget.scrollTimeout) {
caller = 'vertical';
}
lastCall = DateTime.now().millisecondsSinceEpoch;
if (caller == 'vertical') {
_internalController.jumpTo(_verticalController.offset);
if (widget.freezeColumns > 0) {
_freezeController.jumpTo(_verticalController.offset);
}
}
});
_internalController.addListener(() {
if (caller.isEmpty ||
DateTime.now().millisecondsSinceEpoch - lastCall >
widget.scrollTimeout) {
caller = 'internal';
}
lastCall = DateTime.now().millisecondsSinceEpoch;
if (caller == 'internal') {
_verticalController.jumpTo(_internalController.offset);
if (widget.freezeColumns > 0) {
_freezeController.jumpTo(_internalController.offset);
}
}
});
if (widget.freezeColumns > 0) {
_freezeController.addListener(() {
if (caller.isEmpty ||
DateTime.now().millisecondsSinceEpoch - lastCall >
widget.scrollTimeout) {
caller = 'freeze';
}
lastCall = DateTime.now().millisecondsSinceEpoch;
if (caller == 'freeze') {
_verticalController.jumpTo(_freezeController.offset);
_internalController.jumpTo(_freezeController.offset);
}
});
}
}