我需要限制ViewPager中的滑动区域.例如,如果用户使手势在屏幕的上半部分空间上滑动,则它会滑动到下一个片段,但如果用户在屏幕的下半部分做出手势,则它什么都不做.
有办法做到这一点?
这可能是您需要的:
public class MyPager extends ViewPager {
public MyPager(Context context) {
super(context);
}
public MyPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if(inNeutralArea(ev.getX(),ev.getY())){
//--events re-directed to this ViewPager's onTouch() and to its child views from there--
return false;
}else {
//--events intercepted by this ViewPager's default implementation, where it looks for swipe gestures--
return super.onInterceptTouchEvent(ev);
}
}
private boolean inNeutralArea(float x, float y) {
//--check if x,y inside non reactive area, return true/false accordingly--
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
MyPager在布局xml中使用此类代替ViewPager.