android - 禁用子 viewPager 在父 viewPager 内滑动

标签 android android-viewpager touch-event

我想禁用父 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;
}
}

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

最佳答案

要在不影响父事件的情况下禁用 ViewPager 滚动,请覆盖 canScrollHorizo​​ntally() 方法:

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

关于android - 禁用子 viewPager 在父 viewPager 内滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28492970/

相关文章:

android - 查看寻呼机 - 如何在其顶部放置固定按钮

javascript - 检测元素是否已停止动量滚动?

android - 为什么 onTouchEvent getPointerCount() 方法总是返回 1?

android - 更改 Gridview 项目可见性

android - 哪个更快? Android 中的 SharedPreference 或文件

android - 使用 httpurlconnection 和 android 上传图像字节数组

java - ViewPager 中替换 fragment 的问题

java - 如何突出显示回收器 View 的单行或项目并将突出显示的行滚动到屏幕顶部

android - 无法使 FragmentPagerAdapter 更新 fragment 内容

android - 为什么onSurfaceView onTouchEvent()返回true?