@Override
 public void scrollTo(int x, int y) {
   super.scrollTo(x, y);
   mScrollX = x;
   mViewBehind.scrollBehindTo(mContent, x, y);
   ((SlidingMenu) getParent()).manageLayers(getPercentOpen());
 }
 @Override
 protected void dispatchDraw(Canvas canvas) {
   super.dispatchDraw(canvas);
   // Draw the margin drawable if needed.
   mViewBehind.drawShadow(mContent, canvas);
   mViewBehind.drawFade(mContent, canvas, getPercentOpen());
   mViewBehind.drawSelector(mContent, canvas, getPercentOpen());
 }
 @Override
 protected void onSizeChanged(int w, int h, int oldw, int oldh) {
   super.onSizeChanged(w, h, oldw, oldh);
   // Make sure scroll position is set correctly.
   if (w != oldw) {
     // [ChrisJ] - This fixes the onConfiguration change for orientation issue..
     // maybe worth having a look why the recomputeScroll pos is screwing
     // up?
     completeScroll();
     scrollTo(getDestScrollX(mCurItem), getScrollY());
   }
 }
  /**
   * Tests scrollability within child views of v given a delta of dx.
   *
   * @param v View to test for horizontal scrollability
   * @param checkV Whether the view v passed should itself be checked for scrollability (true), or
   *     just its children (false).
   * @param dx Delta scrolled in pixels
   * @param x X coordinate of the active touch point
   * @param y Y coordinate of the active touch point
   * @return true if child views of v can be scrolled by delta of dx.
   */
  protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
    if (v instanceof ViewGroup) {
      final ViewGroup group = (ViewGroup) v;
      final int scrollX = v.getScrollX();
      final int scrollY = v.getScrollY();
      final int count = group.getChildCount();
      // Count backwards - let topmost views consume scroll distance first.
      for (int i = count - 1; i >= 0; i--) {
        final View child = group.getChildAt(i);
        if (x + scrollX >= child.getLeft()
            && x + scrollX < child.getRight()
            && y + scrollY >= child.getTop()
            && y + scrollY < child.getBottom()
            && canScroll(
                child, true, dx, x + scrollX - child.getLeft(), y + scrollY - child.getTop())) {
          return true;
        }
      }
    }

    return checkV && ViewCompat.canScrollHorizontally(v, -dx);
  }