From 0ec00cf13821addda3c331313ddcb5214f8c040d Mon Sep 17 00:00:00 2001 From: idubnori Date: Thu, 23 Oct 2025 11:03:29 +0900 Subject: [PATCH] feat: initial scrolling to bottom --- .../presentation/pages/drift_activities.page.dart | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mobile/lib/presentation/pages/drift_activities.page.dart b/mobile/lib/presentation/pages/drift_activities.page.dart index d67eeac9a2..e44dfd263b 100644 --- a/mobile/lib/presentation/pages/drift_activities.page.dart +++ b/mobile/lib/presentation/pages/drift_activities.page.dart @@ -34,11 +34,7 @@ class DriftActivitiesPage extends HookConsumerWidget { final listViewScrollController = useScrollController(); void scrollToBottom() { - listViewScrollController.animateTo( - listViewScrollController.position.maxScrollExtent + 80, - duration: const Duration(milliseconds: 600), - curve: Curves.fastOutSlowIn, - ); + listViewScrollController.animateTo(0, duration: const Duration(milliseconds: 300), curve: Curves.fastOutSlowIn); } Future onAddComment(String comment) async { @@ -55,7 +51,7 @@ class DriftActivitiesPage extends HookConsumerWidget { body: activities.widgetWhen( onData: (data) { final List activityWidgets = []; - for (final activity in data) { + for (final activity in data.reversed) { activityWidgets.add( Padding( padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 6), @@ -64,12 +60,16 @@ class DriftActivitiesPage extends HookConsumerWidget { ); } + // Ensure initial render scrolls to bottom so newest activities are visible + // WidgetsBinding.instance.addPostFrameCallback((_) => scrollToBottom()); + return SafeArea( child: Stack( children: [ ListView( controller: listViewScrollController, padding: const EdgeInsets.only(top: 8, bottom: 80), + reverse: true, children: activityWidgets, ), Align(