Я мог бы сделать эту работу, используя Timer
, но, вероятно, должен быть лучший способ сделать это.Мой обходной путь был:
- Определите
ScrollController()
и прикрепите его к списку просмотра:
ListView.builder(
controller: _scrollController,
itemCount: _logLines.values.length,
itemBuilder: (context, index) => _getLogLine(index),
)
Переопределите метод вашей страницы
initState
и установите таймер внутри него как:
@override
void initState() {
super.initState();
Timer.periodic(Duration(milliseconds: 100), (timer) {
if (mounted) {
_scrollToBottom();
} else {
timer.cancel();
}
});
}
Определите метод _scrollToBottom()
, который вызывает:
_scrollController.jumpTo(_scrollController.position.maxScrollExtent);