PixelDroid-App-Android/app/src/main/java/com/h/pixeldroid/utils/NonSwipeableViewPager.kt

43 lines
1.2 KiB
Kotlin

package com.h.pixeldroid.utils
import android.content.Context
import android.util.AttributeSet
import android.view.MotionEvent
import android.view.animation.DecelerateInterpolator
import android.widget.Scroller
import androidx.viewpager.widget.ViewPager
class NonSwipeableViewPager: ViewPager {
constructor(context: Context):super(context) {
setMyScroller()
}
constructor(context: Context,attributeSet: AttributeSet): super(context, attributeSet) {
setMyScroller()
}
override fun onInterceptTouchEvent(ev: MotionEvent?): Boolean {
return false
}
override fun onTouchEvent(ev: MotionEvent?): Boolean {
return false
}
private fun setMyScroller() {
try {
val viewPager = ViewPager::class.java
val scroller = viewPager.getDeclaredField("mScroller")
scroller.isAccessible = true
scroller.set(this, FilterScroller(context))
} catch (e:Exception) {
e.printStackTrace()
}
}
}
class FilterScroller(context: Context): Scroller(context, DecelerateInterpolator()) {
override fun startScroll(startX: Int, startY: Int, dx: Int, dy: Int, duration: Int) {
super.startScroll(startX, startY, dx, dy, 400)
}
}