禁用父viewPager内的子viewViewr滑动

Sun*_*nny 2 android touch-event android-viewpager

我想禁用在父viewpager中的子viewpager的滑动。

我目前正在使用此自定义子Viewpager

public class CustomViewPager extends ViewPager {

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

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

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    // Never allow swiping to switch between pages
    return true;
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    // Never allow swiping to switch between pages
    return true;
}

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {

    return true;
}
}
Run Code Online (Sandbox Code Playgroud)

这会禁用子viewpager的滑动,但是父viewpager的滑动在该部分会被禁用。

Ole*_*hko 5

要禁用ViewPager滚动而不影响父级事件,请重写canScrollHorizo​​ntally()方法:

@Override
    public boolean canScrollHorizontally(int direction) {
        //Disable horizontal scrolling
        if (enabled) {
            return super.canScrollHorizontally(direction);
        } else {
            return false;
        }
    }
Run Code Online (Sandbox Code Playgroud)