您的位置:首页 > 其它

如何锁定ViewPager使其不可滚动

2013-11-18 14:33 183 查看
楼主最近在使用ViewPager时有这样的小需求,baidu之发现实现方法各异,楼主自己读源码觉得我自己的这种比较靠谱:

public class ControlScrollViewPager extends ViewPager {

private boolean scrollable = true;

public ControlScrollViewPager(Context context) {
super(context);
}

public ControlScrollViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}

public void setScrollable(boolean enable) {
scrollable = enable;
}

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (scrollable) {
return super.onInterceptTouchEvent(event);
} else {
return false;
}
}
}


ViewPager的父类是ViewGroup,源码中有这段代码:

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
/*
* This method JUST determines whether we want to intercept the motion.
* If we return true, onMotionEvent will be called and we do the actual
* scrolling there.
*/

final int action = ev.getAction() & MotionEventCompat.ACTION_MASK;


亲测效果还不错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: