今天我们来优雅的实现不能滑动的ViewPager,不直接在ViewPager中写死,我们自己调用方法 控制ViewPager的拦截事件和滑动
先看看怎么用:
viewPager = (MyViewPager) findViewById(R.id.activity_main_viewpager);
viewPager.setTouchIntercept(false);
viewPager.setCanScroll(false);
看看如何实现?
要改变系统控件的原生的样子,就必须自定义了
public
class
MyViewPager
extends
ViewPager {
private
boolean
willIntercept =
true
;
public
MyViewPager(Context context) {
super
(context);
}
public
MyViewPager(Context context, AttributeSet attrs) {
super
(context, attrs);
}
@Override
public
boolean
onInterceptTouchEvent(MotionEvent arg0) {
if
(willIntercept) {
return
super
.onInterceptTouchEvent(arg0);
}
else
{
return
false
;
}
}
public
void
setTouchIntercept(
boolean
value) {
willIntercept = value;
}
private
boolean
isCanScroll =
true
;
public
boolean
isCanScroll() {
return
isCanScroll;
}
public
void
setCanScroll(
boolean
isCanScroll) {
this
.isCanScroll = isCanScroll;
}
@Override
public
boolean
onTouchEvent(MotionEvent arg0) {
// return super.onTouchEvent(arg0);
return
isCanScroll ?
false
:
true
;
}
}