43 lines
1.2 KiB
Kotlin
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)
|
|
}
|
|
} |