Android Dev/Android

[Android/Kotlin] Custom ViewPager 1 - Disable Swipe Effect(Not Fling)

서메리 2022. 7. 27. 15:08

ViewPager에서 좌우 Swipe 효과(Fling) 제거하기

 

 

CustomViewPager.kt

private var isSwipeEffect = false

fun setSwipeEffect(isEffect: Boolean) {
    isSwipeEffect = isEffect
}
    
override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
    if (isSwipeEffect) {
        return try {
            super.onInterceptTouchEvent(ev)
        } catch (e: java.lang.IllegalArgumentException) {
            false
        }
    } else {
        if (ev.actionMasked != MotionEvent.ACTION_MOVE) {
            if (super.onInterceptTouchEvent(ev))
                super.onTouchEvent(ev)
        }
        return false
    }
}

override fun onTouchEvent(ev: MotionEvent?): Boolean {
    return if (isSwipeEffect) {
        super.onTouchEvent(ev)
    } else {
        false
    }
}