我有一个可以刷5页或更多页的viewPager。有些页面包含表单输入字段。根据输入值,可以启用或禁用卷帘。例如:如果页面包含复选框,并且它是必填字段,则需要选中。如果只勾选,那么swipe应该可以工作,否则将停留在同一页面上。
发布于 2018-07-29 15:40:49
您可以扩展viewpager类以创建自定义viewpager实现。在该类中,您需要根据需要重写"canScrollHorizontally“方法以返回true或false
public class LockableViewPager extends ViewPager {
private boolean swipeLocked;
public LockableViewPager(Context context) {
super(context);
}
public LockableViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
public boolean getSwipeLocked() {
return swipeLocked;
}
public void setSwipeLocked(boolean swipeLocked) {
this.swipeLocked = swipeLocked;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return !swipeLocked && super.onTouchEvent(event);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
return !swipeLocked && super.onInterceptTouchEvent(event);
}
@Override
public boolean canScrollHorizontally(int direction) {
//control this method based on your logic
return !swipeLocked && super.canScrollHorizontally(direction);
}
}https://stackoverflow.com/questions/51578275
复制相似问题