工具类
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)