Android 使用ViewPager和actionbar选项卡阻止选项卡之间的导航

Android 使用ViewPager和actionbar选项卡阻止选项卡之间的导航,android,android-layout,android-fragments,android-viewpager,Android,Android Layout,Android Fragments,Android Viewpager,我有一个问题,我需要在离开选项卡之前警告用户,该选项卡位于ViewPager中,由actionbar中的选项卡控制 viewPager具有典型的功能,actionbar选项卡使用 基本上,我试图找出如何截获开始更改选项卡的操作,并且仅在用户确认该对话框时才允许该操作发生。我尝试过的回调似乎没有阻止更改的发生。有什么简单的方法可以达到我所缺少的目的吗?无论用户试图通过滑动(ViewPager)或选择选项卡(TabListener)离开选项卡,都会发生相同的操作。使用下面的类,您可以阻止滑动。 尝试

我有一个问题,我需要在离开选项卡之前警告用户,该选项卡位于ViewPager中,由actionbar中的选项卡控制

viewPager具有典型的功能,actionbar选项卡使用


基本上,我试图找出如何截获开始更改选项卡的操作,并且仅在用户确认该对话框时才允许该操作发生。我尝试过的回调似乎没有阻止更改的发生。有什么简单的方法可以达到我所缺少的目的吗?无论用户试图通过滑动(ViewPager)或选择选项卡(TabListener)离开选项卡,都会发生相同的操作。使用下面的类,您可以阻止滑动。
尝试一下,如果有任何问题,然后评论,我会尝试解决它

public class CustomViewPager extends ViewPager {
    private boolean enabled;
    private boolean blockSwipe = false;

    public CustomViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.enabled = true;
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (this.enabled) {
            return super.onTouchEvent(event);
        }
        return false;
    }

    public void setBlockSwipe(boolean blockSwipe) {
        this.blockSwipe = blockSwipe;
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
        if (blockSwipe)
            return false;
        else
            return super.onInterceptTouchEvent(event);
    }
}

似乎在tab listener中应该没有任何问题,因为您需要手动切换页面,对吗?如果是的话,为什么问题中提到了它?这种方式是否不适用?