diff --git a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/positioned_list.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/positioned_list.dart index c2c2a278..2ce9adb5 100644 --- a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/positioned_list.dart +++ b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/positioned_list.dart @@ -326,7 +326,7 @@ class _PositionedListState extends State { final box = element.renderObject as RenderBox?; viewport ??= RenderAbstractViewport.of(box) as RenderViewport?; if (viewport == null || box == null) { - continue; + break; } final key = element.widget.key as IndexedKey; if (widget.scrollDirection == Axis.vertical) { 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 47b47785..5424a1c2 100644 --- a/packages/stream_chat_flutter/lib/src/message_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/message_list_view.dart @@ -399,8 +399,11 @@ class _MessageListViewState extends State { final first = _itemPositionListener.itemPositions.value.first; final diff = newMessagesListLength - _messageListLength!; if (diff > 0) { - initialIndex = first.index + diff; - initialAlignment = first.itemLeadingEdge; + if (messages[0].user?.id != + streamChannel!.channel.client.state.currentUser?.id) { + initialIndex = first.index + diff; + initialAlignment = first.itemLeadingEdge; + } } } } @@ -1259,8 +1262,9 @@ class _MessageListViewState extends State { event.message!.user!.id == streamChannel!.channel.client.state.currentUser!.id) { WidgetsBinding.instance!.addPostFrameCallback((_) { - _scrollController?.jumpTo( + _scrollController?.scrollTo( index: 0, + duration: const Duration(seconds: 1), ); }); }