ViewPager 取消滑动效果,禁止手指滑动

来源:互联网 发布:网络调查问卷平台 编辑:程序博客网 时间:2024/04/30 11:53
重写viewPager
/** * Created by Bellion on 2016/3/30. */public class CustomViewPager extends ViewPager {    private boolean noScroll = false;    public CustomViewPager(Context context, AttributeSet attrs) {        super(context, attrs);        // TODO Auto-generated constructor stub    }    public CustomViewPager(Context context) {        super(context);    }    public void setNoScroll(boolean noScroll) {        this.noScroll = noScroll;//灵活的设置是否需要手指滑动</span>    }    @Override    public void scrollTo(int x, int y) {        super.scrollTo(x, y);    }    @Override    public boolean onTouchEvent(MotionEvent arg0) {        /* return false;//super.onTouchEvent(arg0); */        if (noScroll)            return false;//设置手指不能滑动条件一</span>        else            return super.onTouchEvent(arg0);    }    @Override    public boolean onInterceptTouchEvent(MotionEvent arg0) {        if (noScroll)            return false;//设置手指不能滑动条件二,也是最后的条件</span>        else            return super.onInterceptTouchEvent(arg0);    }    @Override    public void setCurrentItem(int item, boolean smoothScroll) {        super.setCurrentItem(item, smoothScroll);    }    @Override    public void setCurrentItem(int item) {        super.setCurrentItem(item,false);//设置viewpager没有切换动画,直接显现</span>    }}


用来和RadioGroup做联动时,防止viewpager自己变化,只通过点击radioButton来切换。


在activity中这样写

 customViewPagerAdapter = new CustomViewPagerAdapter(this);        viewPager.setAdapter(customViewPagerAdapter);        viewPager.setNoScroll(true);//设置为不对滑动做出反应</span>        radioGroup.setOnCheckedChangeListener(                new RadioGroup.OnCheckedChangeListener() {                    @Override                    public void onCheckedChanged(RadioGroup group, int checkedId) {                        RadioButton radioButton;                        for (int index = 0; index < group.getChildCount(); index++) {                            radioButton = (RadioButton) group.getChildAt(index);                            if (radioButton.isChecked()) {                                viewPager.setCurrentItem(index);                            }                        }                    }                }        );



0 0
原创粉丝点击