diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/list/fastscroll/FastScrollRecyclerView.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/list/fastscroll/FastScrollRecyclerView.kt index 1a1590019..6dfb0aae5 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/list/fastscroll/FastScrollRecyclerView.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/list/fastscroll/FastScrollRecyclerView.kt @@ -4,8 +4,10 @@ import android.content.Context import android.util.AttributeSet import android.view.ViewGroup import androidx.annotation.AttrRes +import androidx.core.view.ancestors import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView +import androidx.viewpager2.widget.ViewPager2 import org.koitharu.kotatsu.R class FastScrollRecyclerView @JvmOverloads constructor( @@ -15,6 +17,7 @@ class FastScrollRecyclerView @JvmOverloads constructor( ) : RecyclerView(context, attrs, defStyleAttr) { val fastScroller = FastScroller(context, attrs) + private var applyViewPager2Fix = false var isFastScrollerEnabled: Boolean = true set(value) { @@ -43,10 +46,23 @@ class FastScrollRecyclerView @JvmOverloads constructor( override fun onAttachedToWindow() { super.onAttachedToWindow() fastScroller.attachRecyclerView(this) + applyViewPager2Fix = ancestors.any { it is ViewPager2 } == true } override fun onDetachedFromWindow() { fastScroller.detachRecyclerView() super.onDetachedFromWindow() + applyViewPager2Fix = false + } + + override fun isLayoutRequested(): Boolean { + return if (applyViewPager2Fix) false else super.isLayoutRequested() + } + + override fun requestLayout() { + super.requestLayout() + if (applyViewPager2Fix && parent?.isLayoutRequested == true) { + parent?.requestLayout() + } } } diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/container/FavouritesContainerFragment.kt b/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/container/FavouritesContainerFragment.kt index 5b9889514..bffd9cf52 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/container/FavouritesContainerFragment.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/container/FavouritesContainerFragment.kt @@ -49,7 +49,7 @@ class FavouritesContainerFragment : BaseFragment