Java Android:限制用户在ViewPager中滑动屏幕
我有一个选项卡式活动:用户可以向右或向左滑动以更改屏幕。在某个时刻,我想录制一段音频,当它被录制时,用户不应该更改屏幕 问题:如何限制用户在Java Android:限制用户在ViewPager中滑动屏幕,java,android,android-viewpager,Java,Android,Android Viewpager,我有一个选项卡式活动:用户可以向右或向左滑动以更改屏幕。在某个时刻,我想录制一段音频,当它被录制时,用户不应该更改屏幕 问题:如何限制用户在ViewPager中更改屏幕(刷卡) 我试着用ViewPagerAPI来解决这个问题,但是我没有找到一个合适的方法(在ViewPager中有成百上千种方法,它们都不可能实现我想要的功能)。创建一个自定义的ViewPager,如下所示 public class CustomViewPager extends ViewPager { private b
ViewPager
中更改屏幕(刷卡)
我试着用
ViewPager
API来解决这个问题,但是我没有找到一个合适的方法(在ViewPager
中有成百上千种方法,它们都不可能实现我想要的功能)。创建一个自定义的ViewPager,如下所示
public class CustomViewPager extends ViewPager {
private boolean enabled = true;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
enabled = true;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
if (enabled) {
return super.onInterceptTouchEvent(arg0);
} else {
return false;
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onTouchEvent(event);
}
return false;
}
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
}
}
然后只需调用
viewPager.setPaginEnabled(false)代码>您可以扩展ViewPager类并使用此代码
public class LockableViewPager extends ViewPager {
private boolean swipeable;
public LockableViewPager(Context context) {
super(context);
}
public LockableViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.swipeable = true;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
return this.swipeable && super.onInterceptTouchEvent(event);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return this.swipeable && super.onTouchEvent(event);
}
public void setSwipeable(boolean swipeable) {
this.swipeable = swipeable;
}
}
然后在片段或活动中,您可以调用mviewpage.setsweable(false)代码>使其不可擦除。谢谢。我将在明天试用,并让您知道。SetPaginEnabled不是一个可以在ViewPager上调用的有效方法。请看官方的Android文档:是的,我正要添加自定义视图寻呼机类,因为它没有反映出为什么要投票否决?请解释一下,谢谢。成功了。我还简化了你的代码。