diff --git a/Pixiview/Illust/RankingPage.xaml.cs b/Pixiview/Illust/RankingPage.xaml.cs
index 0076bd7..bcf8db9 100644
--- a/Pixiview/Illust/RankingPage.xaml.cs
+++ b/Pixiview/Illust/RankingPage.xaml.cs
@@ -269,13 +269,8 @@ namespace Pixiview.Illust
                 {
                     ToggleFilterPanel(false);
                 }
-                // release
-                ReleaseCollection();
-                previousEnabled = false;
-                dateEnabled = false;
-                nextEnabled = false;
                 queryDate = date;
-                StartLoad(true);
+                PrepareLoad();
             }
         }
 
@@ -299,13 +294,8 @@ namespace Pixiview.Illust
                 // first load or loading
                 return;
             }
-            // release
-            ReleaseCollection();
-            previousEnabled = false;
-            dateEnabled = false;
-            nextEnabled = false;
             queryDate = e.NewDate.ToString("yyyyMMdd");
-            StartLoad(true);
+            PrepareLoad();
         }
 
         private void TapGestureRecognizer_Tapped(object sender, EventArgs e)
@@ -351,29 +341,34 @@ namespace Pixiview.Illust
             var query = QueryKey;
             ToggleFilterPanel(false);
 
-            bool refresh = false;
             lock (sync)
             {
                 if (IsLoading)
                 {
                     return;
                 }
-                //if (lastQueryKey != query)
-                {
-                    // release
-                    ReleaseCollection();
-                    // query changed.
-                    lastQueryKey = query;
-                    refresh = true;
-                    App.DebugPrint($"query changed: {query}");
-                }
             }
-            if (refresh)
+            //if (lastQueryKey != query)
             {
-                StartLoad(true);
+                // query changed.
+                lastQueryKey = query;
+                App.DebugPrint($"query changed: {query}");
+                PrepareLoad();
             }
         }
 
+        private async void PrepareLoad()
+        {
+            await scrollView.ScrollToAsync(0, -topOffset, true);
+            // release
+            ReleaseCollection();
+            previousEnabled = false;
+            dateEnabled = false;
+            nextEnabled = false;
+            ToolbarCommand.ChangeCanExecute();
+            StartLoad(true);
+        }
+
         private void ReleaseCollection()
         {
             var collection = IllustCollection;