diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt index 771fce00d..6c52b7c17 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt @@ -104,6 +104,7 @@ import java.util.Locale // Note that we do not really follow mvvm structure, just use it as ... storage class VMStorage : ViewModel() { var urlBuilder = FavListUrlBuilder(favCat = Settings.recentFavCat) + var shouldScrollToTop = false private val cloudDataFlow = Pager(PagingConfig(25)) { object : PagingSource() { override fun getRefreshKey(state: PagingState): String? = null @@ -120,6 +121,7 @@ class VMStorage : ViewModel() { } else { urlBuilder.setIndex(key, false) } + shouldScrollToTop = true } } val r = runSuspendCatching { @@ -357,6 +359,10 @@ class FavoritesScene : SearchBarScene() { binding.tip.text = empty transition.showView(2) } else { + if (vm.shouldScrollToTop) { + vm.shouldScrollToTop = false + binding.recyclerView.scrollToPosition(0) + } transition.showView(0) } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt index 41b1a39a0..baf265e27 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt @@ -124,6 +124,7 @@ import java.util.Locale class VMStorage1 : ViewModel() { var urlBuilder = ListUrlBuilder() + var shouldScrollToTop = false val dataFlow = Pager(PagingConfig(25)) { object : PagingSource() { override fun getRefreshKey(state: PagingState): String? = null @@ -154,6 +155,7 @@ class VMStorage1 : ViewModel() { } else { urlBuilder.setIndex(key, false) } + shouldScrollToTop = true } } val r = runSuspendCatching { @@ -402,6 +404,10 @@ class GalleryListScene : SearchBarScene() { binding.tip.text = empty transition.showView(2) } else { + if (vm.shouldScrollToTop) { + vm.shouldScrollToTop = false + binding.recyclerView.scrollToPosition(0) + } transition.showView(0) } }