Disable swiping between tabs

后端 未结 4 489
不知归路
不知归路 2020-12-04 17:47

I set up sliding tabs with two Fragments each Fragment has a Button which goes to a WebView. The problem with this is whe

4条回答
  •  自闭症患者
    2020-12-04 18:21

    Accepted Answer's AndroidX and Kotlin Version:

    ViewPager with paging disabled all the time

    package your.packg.name //CustomViewPager's location actually
    
    import android.content.Context
    import android.util.AttributeSet
    import android.view.MotionEvent
    import androidx.viewpager.widget.ViewPager
    
    class CustomViewPager(
        context: Context?,
        attrs: AttributeSet?
    ) :
        ViewPager(context!!, attrs) {
        override fun onTouchEvent(event: MotionEvent): Boolean {
            return false
        }
    
        override fun onInterceptTouchEvent(event: MotionEvent): Boolean {
            return false
        }
    }
    

    ViewPager with paging switchable to on or off at anytime.

    package your.packg.name //CustomViewPager's location actually
    
    import android.content.Context
    import android.util.AttributeSet
    import android.view.MotionEvent
    import androidx.viewpager.widget.ViewPager
    
    class CustomViewPager(
        context: Context?,
        attrs: AttributeSet?
    ) :
        ViewPager(context!!, attrs) {
        var isPagingEnabled = false   //Modify this in code for switch
    
        override fun onTouchEvent(event: MotionEvent): Boolean {
            return isPagingEnabled && super.onTouchEvent(event)
        }
    
        override fun onInterceptTouchEvent(event: MotionEvent): Boolean {
            return isPagingEnabled && super.onInterceptTouchEvent(event)
        }
    }
    

    Lastly, find ViewPager line in XML file and modify according to your CustomViewPager location, i.e.:

提交回复
热议问题