重写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);
}
}
}
}
);