Buggy code:
private final ViewDragHelper mDragHelper ; private boolean mFirstLayout = true ; private final Rect mTmpRect = new Rect ( ) ; public interface PanelSlideListener { public void onPanelSlide ( View panel , float slideOffset ) { } public void onPanelStateChanged ( View panel , SlidingUpPanelLayout . PanelState previousState , SlidingUpPanelLayout . PanelState newState ) { } } public static class SimplePanelSlideListener implements SlidingUpPanelLayout . PanelSlideListener { @ Override public void onPanelSlide ( View panel , float slideOffset ) { } @ Override public void onPanelStateChanged ( View panel , SlidingUpPanelLayout . PanelState previousState , SlidingUpPanelLayout . PanelState newState ) { } } public SlidingUpPanelLayout ( Context context ) { } public SlidingUpPanelLayout ( Context context , AttributeSet attrs ) { } public SlidingUpPanelLayout ( Context context , AttributeSet attrs , int defStyle ) { } @ Override protected void onFinishInflate ( ) { } public void setGravity ( int gravity ) { } public void setCoveredFadeColor ( int color ) { } public int getCoveredFadeColor ( ) { } public void setTouchEnabled ( boolean enabled ) { } public boolean isTouchEnabled ( ) { } public void setPanelHeight ( int val ) { } protected void smoothToBottom ( ) { } public int getShadowHeight ( ) { } public void setShadowHeight ( int val ) { } public int getPanelHeight ( ) { } public int getCurrentParallaxOffset ( ) { } public void setParallaxOffset ( int val ) { } public int getMinFlingVelocity ( ) { } public void setMinFlingVelocity ( int val ) { } public void addPanelSlideListener ( SlidingUpPanelLayout . PanelSlideListener listener ) { } public void removePanelSlideListener ( SlidingUpPanelLayout . PanelSlideListener listener ) { } public void setFadeOnClickListener ( View . OnClickListener listener ) { } public void setDragView ( View dragView ) { } public void setDragView ( int dragViewResId ) { } public void setScrollableView ( View scrollableView ) { } public void setScrollableViewHelper ( ScrollableViewHelper helper ) { } public void setAnchorPoint ( float anchorPoint ) { } public float getAnchorPoint ( ) { } public void setOverlayed ( boolean overlayed ) { } public boolean isOverlayed ( ) { } public void setClipPanel ( boolean clip ) { } public boolean isClipPanel ( ) { } void dispatchOnPanelSlide ( View panel ) { } void dispatchOnPanelStateChanged ( View panel , SlidingUpPanelLayout . PanelState previousState , SlidingUpPanelLayout . PanelState newState ) { } void updateObscuredViewVisibility ( ) { } void setAllChildrenVisible ( ) { } private static boolean hasOpaqueBackground ( View v ) { } @ Override protected void onAttachedToWindow ( ) { } @ Override protected void onDetachedFromWindow ( ) { } @ Override protected void onMeasure ( int widthMeasureSpec , int heightMeasureSpec ) { } @ Override protected void onLayout ( boolean changed , int l , int t , int r , int b ) { } @ Override protected void onSizeChanged ( int w , int h , int oldw , int oldh ) { } @ Override public boolean onInterceptTouchEvent ( MotionEvent ev ) { } @ Override public boolean onTouchEvent ( MotionEvent ev ) { } @ Override public boolean dispatchTouchEvent ( MotionEvent ev ) { } private boolean isViewUnder ( View view , int x , int y ) { } private int computePanelTopPosition ( float slideOffset ) { } private float computeSlideOffset ( int topPosition ) { } public SlidingUpPanelLayout . PanelState getPanelState ( ) { } public void setPanelState ( SlidingUpPanelLayout . PanelState state ) { } private void setPanelStateInternal ( SlidingUpPanelLayout . PanelState state ) { } @ SuppressLint ( "NewApi" ) private void applyParallaxForCurrentSlideOffset ( ) { } private void onPanelDragged ( int newTop ) { } @ Override protected boolean drawChild ( Canvas canvas , View child , long drawingTime ) { boolean result ; final int save = canvas . save ( CLIP_SAVE_FLAG ) ; <START_BUG> if ( ( mSlideableView ) != child ) { <END_BUG> canvas . getClipBounds ( mTmpRect ) ; if ( ! ( mOverlayContent ) ) { if ( mIsSlidingUp ) { mTmpRect . bottom = Math . min ( mTmpRect . bottom , mSlideableView . getTop ( ) ) ; } else { mTmpRect . top = Math . max ( mTmpRect . top , mSlideableView . getBottom ( ) ) ; } } if ( mClipPanel ) { canvas . clipRect ( mTmpRect ) ; } result = super . drawChild ( canvas , child , drawingTime ) ; if ( ( ( mCoveredFadeColor ) != 0 ) && ( ( mSlideOffset ) > 0 ) ) { final int baseAlpha = ( ( mCoveredFadeColor ) & - 16777216 ) > > > 24 ; final int imag = ( ( int ) ( baseAlpha * ( mSlideOffset ) ) ) ; final int color = ( imag << 24 ) | ( ( mCoveredFadeColor ) & 16777215 ) ; mCoveredFadePaint . setColor ( color ) ; canvas . drawRect ( mTmpRect , mCoveredFadePaint ) ; } } else { result = super . drawChild ( canvas , child , drawingTime ) ; } canvas . restoreToCount ( save ) ; return result ; } boolean smoothSlideTo ( float slideOffset , int velocity ) { } @ Override public void computeScroll ( ) { } @ Override public void draw ( Canvas c ) { } protected boolean canScroll ( View v , boolean checkV , int dx , int x , int y ) { } @ Override protected ViewGroup . LayoutParams generateDefaultLayoutParams ( ) { } @ Override protected ViewGroup . LayoutParams generateLayoutParams ( ViewGroup . LayoutParams p ) { } @ Override protected boolean checkLayoutParams ( ViewGroup . LayoutParams p ) { } @ Override public ViewGroup . LayoutParams generateLayoutParams ( AttributeSet attrs ) { } @ Override public Parcelable onSaveInstanceState ( ) { } @ Override public void onRestoreInstanceState ( Parcelable state ) { }

Fix:
if ( ( ( mSlideableView ) != null ) && ( ( mSlideableView ) != child ) ) {