Android 使用ViewPager和actionbar选项卡阻止选项卡之间的导航
我有一个问题,我需要在离开选项卡之前警告用户,该选项卡位于ViewPager中,由actionbar中的选项卡控制 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)或选择选项卡(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中应该没有任何问题,因为您需要手动切换页面,对吗?如果是的话,为什么问题中提到了它?这种方式是否不适用?