我正在使用Android兼容性包版本4,在我的应用程序中显示PDF页面。我已经使用PagerAdapter和ViewPager来显示PDF页面,就像水平滚动视图一样。
现在问题出在分页方面。我能够通过检测ViewPager内部的子项停止分页,就像这个线程中所述,但是当用户触摸该视图之外时,如何重新启用分页呢?我已经在CustomViewPager中使用了以下代码。
public class CustomViewPager extends ViewPager {
private boolean enabled;
private int childId;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.enabled = true;
}
public void setChildId(int childId) {
this.childId = childId;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
boolean result = false;
View scroll = getChildAt(childId);
if (scroll != null) {
Rect rect = new Rect();
CommonLogic.logMessage("PDF Page Rectangle ", TAG, Log.VERBOSE);
scroll.getHitRect(rect);
if (rect.contains((int) event.getX(), (int) event.getY())) {
setPagingEnabled(false);
result = true;
}
}
return result;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onTouchEvent(event);
}
return false;
}
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
}
}
当尝试触摸超出PDF页面时,无论是横向还是纵向,if(scroll!=null)
都会变为true。请问有人能帮我解决问题,以便重新启用ViewPager中的分页功能。