kotlin ViewPager禁止滑动

来源:互联网 发布:淘宝基金如何赎回 编辑:程序博客网 时间:2024/06/05 14:19

原理很简单就是:onTouchEvent和onInterceptTouchEvent监听事件不让它们滑动

package net.intelink.express.widgetimport android.content.Contextimport android.support.v4.view.ViewPagerimport android.util.AttributeSetimport android.view.MotionEvent/** * Created by 陆维淋 on 2017-12-19. */class NoScrollViewPager : ViewPager {    private var isScroll: Boolean = false    constructor(context: Context) : super(context)    constructor(context: Context, attrs: AttributeSet) : super(context, attrs)    fun setScroll(scroll: Boolean) {        isScroll = scroll    }    override fun onTouchEvent(event: MotionEvent): Boolean {        return this.isScroll && super.onTouchEvent(event)    }    override fun onInterceptTouchEvent(event: MotionEvent): Boolean {        return this.isScroll && super.onInterceptTouchEvent(event)    }}

这个里面要重写两个构造函数,一个是context,另一个是context和attrs,缺一不可。

布局文件是:

 <net.intelink.express.widget.NoScrollViewPager            android:id="@+id/vp_content"            android:layout_width="match_parent"            android:layout_height="match_parent"            />

Activity调用方法是:

vp_content.setScroll(false)

这样,就搞定了,感觉很简单,但是一开始构造函数不会写,也弄了好久。