jump scrollview on new messages

This commit is contained in:
Salvatore Giordano
2020-12-03 10:49:41 +01:00
parent 759fe5510e
commit 4373888ae6
+17
View File
@@ -164,6 +164,7 @@ class _MessageListViewState extends State<MessageListView> {
Function _onThreadTap;
bool _showScrollToBottom = false;
ItemPositionsListener _itemPositionListener;
int messageListLength;
@override
Widget build(BuildContext context) {
@@ -203,6 +204,22 @@ class _MessageListViewState extends State<MessageListView> {
);
}
final newMessagesListLength = messages.length;
if (_itemPositionListener.itemPositions.value?.isNotEmpty == true &&
messageListLength != null) {
final first = _itemPositionListener.itemPositions.value.first;
final diff = newMessagesListLength - messageListLength;
if (diff > 0) {
_scrollController.jumpTo(
index: first.index + diff,
alignment: first.itemLeadingEdge,
);
}
}
messageListLength = newMessagesListLength;
return Stack(
alignment: Alignment.center,
children: [