aboutsummaryrefslogtreecommitdiff
path: root/lib/screens/chat_screen.dart
diff options
context:
space:
mode:
Diffstat (limited to 'lib/screens/chat_screen.dart')
-rw-r--r--lib/screens/chat_screen.dart11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/screens/chat_screen.dart b/lib/screens/chat_screen.dart
index d3d71ad..bd0d5d7 100644
--- a/lib/screens/chat_screen.dart
+++ b/lib/screens/chat_screen.dart
@@ -22,6 +22,8 @@ class _ChatScreenState extends State<ChatScreen> {
final Auth _auth = Auth();
final Database _db = Database();
+ final ScrollController _scroll = ScrollController();
+
@override
Widget build(BuildContext context) {
List<dynamic> arguments =
@@ -64,8 +66,17 @@ class _ChatScreenState extends State<ChatScreen> {
stream: _db.getMessagesByGroupId(group!.id!),
builder: (context, snapshot) {
if (snapshot.hasData) {
+ WidgetsBinding.instance.addPostFrameCallback((_) {
+ if (_scroll.hasClients) {
+ _scroll.animateTo(_scroll.position.maxScrollExtent,
+ duration: const Duration(milliseconds: 500),
+ curve: Curves.fastOutSlowIn);
+ }
+ });
+
List<Message> msgs = snapshot.data!;
return ListView.builder(
+ controller: _scroll,
padding: const EdgeInsets.only(bottom: 80.0),
itemCount: snapshot.data!.length,
itemBuilder: (context, index) => ChatBubble(