From 03c2e44d73d005690232458c487f96bd666b7f6f Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Wed, 20 Oct 2021 10:52:26 +0200 Subject: [PATCH] fix(ui): add initialIndex and alignment to didUpdateWidget in scrollable list --- .../lib/src/message_list_view.dart | 28 ++++--------------- .../src/scrollable_positioned_list.dart | 8 ++++++ 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/packages/stream_chat_flutter/lib/src/message_list_view.dart b/packages/stream_chat_flutter/lib/src/message_list_view.dart index 95bed1bb..ffab1d51 100644 --- a/packages/stream_chat_flutter/lib/src/message_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/message_list_view.dart @@ -353,20 +353,6 @@ class _MessageListViewState extends State { MessageListController get _messageListController => widget.messageListController ?? _defaultController; - @override - void didUpdateWidget(MessageListView oldWidget) { - super.didUpdateWidget(oldWidget); - if (widget.initialScrollIndex != oldWidget.initialScrollIndex || - widget.initialAlignment != oldWidget.initialAlignment) { - initialIndex = _initialIndex; - initialAlignment = _initialAlignment; - _scrollController?.jumpTo( - index: initialIndex, - alignment: initialAlignment, - ); - } - } - @override Widget build(BuildContext context) => MessageListCore( paginationLimit: widget.paginationLimit, @@ -1255,14 +1241,12 @@ class _MessageListViewState extends State { initialIndex = _initialIndex; initialAlignment = _initialAlignment; - WidgetsBinding.instance!.addPostFrameCallback((timeStamp) { - if (_scrollController?.isAttached == true) { - _scrollController?.jumpTo( - index: initialIndex, - alignment: initialAlignment, - ); - } - }); + if (_scrollController?.isAttached == true) { + _scrollController?.jumpTo( + index: initialIndex, + alignment: initialAlignment, + ); + } _messageNewListener = streamChannel!.channel.on(EventType.messageNew).listen((event) { diff --git a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/scrollable_positioned_list.dart b/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/scrollable_positioned_list.dart index 98ce0dbf..4b64bdfb 100644 --- a/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/scrollable_positioned_list.dart +++ b/packages/stream_chat_flutter/lib/src/scrollable_positioned_list/src/scrollable_positioned_list.dart @@ -325,6 +325,14 @@ class _ScrollablePositionedListState extends State secondary.target = widget.itemCount - 1; } } + + if (widget.initialScrollIndex != oldWidget.initialScrollIndex || + widget.initialAlignment != oldWidget.initialAlignment) { + _jumpTo( + index: widget.initialScrollIndex, + alignment: widget.initialAlignment, + ); + } } @override