From ea67a022d80bf1987032ea1a1e4982f1a1d4cb38 Mon Sep 17 00:00:00 2001 From: tarsin Date: Wed, 12 Jul 2023 15:56:20 +0800 Subject: [PATCH] Fix leaking --- .../ehviewer/ui/scene/GalleryListScene.kt | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) 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 6f0d66e23..5b3a50eb9 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 @@ -209,17 +209,6 @@ class GalleryListScene : SearchBarScene() { private var mHideActionFabSlop = 0 private var mShowActionFab = true private var mState = State.NORMAL - private val mOnScrollListener: RecyclerView.OnScrollListener = - object : RecyclerView.OnScrollListener() { - override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {} - override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { - if (dy >= mHideActionFabSlop) { - hideActionFab() - } else if (dy <= -mHideActionFabSlop / 2) { - showActionFab() - } - } - } override fun getMenuResId(): Int { return R.menu.scene_gallery_list_searchbar_menu } @@ -436,7 +425,18 @@ class GalleryListScene : SearchBarScene() { } } } - binding.recyclerView.addOnScrollListener(mOnScrollListener) + binding.recyclerView.addOnScrollListener( + object : RecyclerView.OnScrollListener() { + override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {} + override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { + if (dy >= mHideActionFabSlop) { + hideActionFab() + } else if (dy <= -mHideActionFabSlop / 2) { + showActionFab() + } + } + }, + ) binding.fastScroller.attachToRecyclerView(binding.recyclerView) binding.fastScroller.setHandlerDrawable(HandlerDrawable().apply { setColor(inflater.context.theme.resolveColor(androidx.appcompat.R.attr.colorPrimary)) }) setOnApplySearch { query: String? -> @@ -505,6 +505,7 @@ class GalleryListScene : SearchBarScene() { binding.recyclerView.stopScroll() removeAboveSnackView(binding.fabLayout) _binding = null + fabAnimator = null mAdapter = null mViewTransition = null }