如何禁用 FragmentStatePagerAdapter 上的滑动?

How do I disable swiping on FragmentStatePagerAdapter?

我正在学习使用带 FragmentStatePagerAdapter 的 TabLayout 的教程 here。一切都很好,除了我需要禁用我的第二个选项卡上的滑动,因为它使用水平滚动。如果所有选项卡都禁用滚动也没关系,但如果只为第二个选项卡禁用它会很棒。

对于 ViewPager,我似乎会覆盖 onInterceptTouchEvent() 方法,但这似乎不是 FragmentStatePagerAdapter 的选项。关于如何做到这一点的任何想法?谢谢

编辑:我只有两个片段,所以如果 FragmentStatePagerAdapter 不合适,我愿意接受建议。

编辑2:刷不上的问题已经解决。但是,我仍然想知道如何防止仅滑动第二个片段。

修改 onInterceptTouchEventonTouchEvent 以仅排除您想要的选项卡索引:

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    switch(getCurrentItem()){
        case 1:
            return false;
        default:
            return super.onInterceptTouchEvent(event);
    }
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    switch(getCurrentItem()){
        case 1:
            return false;
        default:
            return super.onTouchEvent(event);
    }
}