ViewPager禁止滑动(kotlin)

工具类

class CustomViewPager : ViewPager {
    private var isCanScroll = true

    constructor(context: Context) : super(context) {}
    constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {}

    fun setScanScroll(isCanScroll: Boolean) {
        this.isCanScroll = isCanScroll
    }

    override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
        return super.dispatchTouchEvent(ev)
    }

    override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
        return if (isCanScroll) {
            false
        } else {
            super.onInterceptTouchEvent(ev)
        }
    }

    /**
     * 是否消费事件
     * 消费:事件就结束
     * 不消费:往父控件传
     */
    override fun onTouchEvent(ev: MotionEvent): Boolean {
        return if (isCanScroll) {
            false
        } else {
            super.onTouchEvent(ev)
        }
    }

    override fun setCurrentItem(item: Int) {
        super.setCurrentItem(item, false)
    }
}

工具类作为布局使用

<com.example.basemvvm.utils.CustomViewPager
      android:id="@+id/mVp_type"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
            />

在代码中写入禁止滑动

mVp_type.setScanScroll(false)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容