diff --git a/library/src/com/sothree/slidinguppanel/SlidingUpPanelLayout.java b/library/src/com/sothree/slidinguppanel/SlidingUpPanelLayout.java
index <HASH>..<HASH> 100644
--- a/library/src/com/sothree/slidinguppanel/SlidingUpPanelLayout.java
+++ b/library/src/com/sothree/slidinguppanel/SlidingUpPanelLayout.java
@@ -1102,6 +1102,13 @@ public class SlidingUpPanelLayout extends ViewGroup {
             int anchoredTop = (int)(mAnchorPoint*mSlideRange);
 
             if (mDragHelper.getViewDragState() == ViewDragHelper.STATE_IDLE) {
+                final int newTop = mSlideableView.getTop();
+                final int topBound = getSlidingTop();
+                Log.d(TAG, "onViewDragStateChange newTop " + newTop + " topBound " + topBound);
+                mSlideOffset = mIsSlidingUp
+                        ? (float) (newTop - topBound) / mSlideRange
+                        : (float) (topBound - newTop) / mSlideRange;
+
                 if (mSlideOffset == 0) {
                     if (mSlideState != SlideState.EXPANDED) {
                         updateObscuredViewVisibility();
Recompute slide offset from sliding view top when drag state becomes idle. Some slower devices were missing the final onPanelDragged events so the onPanelExpanded, onPanelAnchored & onPanelCollapsed events were not being fired.