@Override
 public void onComplete(boolean isHeader, boolean isForceAbort) {
   if (isForceAbort) {
     pullViewBase.logD("回滚:中断");
   } else {
     pullViewBase.logD("回滚:已完成");
     pullViewBase.setPullStatus(PullStatus.NORMAL);
     if (isHeader) {
       if (pullViewBase.getPullHeaderView() != null) {
         if (pullViewBase.getPullHeaderView().getStatus() == PullHeaderView.Status.READY) {
           pullViewBase.getPullHeaderView().onTrigger();
         } else if (pullViewBase.getPullHeaderView().getStatus()
             == PullHeaderView.Status.TRIGGER_TO_NORMAL) {
           pullViewBase.getPullHeaderView().onComplete();
         }
       }
     } else {
       if (pullViewBase.getPullFooterView() != null) {
         if (pullViewBase.getPullFooterView().getStatus() == PullFooterView.Status.READY) {
           pullViewBase.getPullFooterView().onTrigger();
         } else if (pullViewBase.getPullFooterView().getStatus()
             == PullFooterView.Status.TRIGGER_TO_NORMAL) {
           pullViewBase.getPullFooterView().onComplete();
         }
       }
     }
   }
 }
 @SuppressWarnings("unchecked")
 @Override
 public void onScroll(boolean isHeader, boolean isScrollToFirstOrEnd) {
   if (isHeader) {
     if (pullViewBase.getPullHeaderView() != null) {
       pullViewBase
           .getPullHeaderView()
           .onScroll(
               Math.abs(
                   pullViewBase.isVerticalPull()
                       ? pullViewBase.getScrollY()
                       : pullViewBase.getScrollX()));
     }
     if (isScrollToFirstOrEnd) {
       pullViewBase.scrollPullViewToHeader(pullViewBase.getPullView());
     }
   } else {
     if (pullViewBase.getPullFooterView() != null) {
       pullViewBase
           .getPullFooterView()
           .onScroll(
               Math.abs(
                   pullViewBase.isVerticalPull()
                       ? pullViewBase.getScrollY()
                       : pullViewBase.getScrollX()));
     }
     if (isScrollToFirstOrEnd) {
       pullViewBase.scrollPullViewToFooter(pullViewBase.getPullView());
     }
   }
 }