@@ -242,6 +242,20 @@ private void calculateRatio(float top) {
242
242
}
243
243
}
244
244
245
+ private void updatePanelState (){
246
+ if (contentTop <= getPaddingTop () + collapseOffset ) {
247
+ panelState = PanelState .COLLAPSED ;
248
+ } else if (contentTop >= topView .getHeight ()){
249
+ panelState = PanelState .EXPANDED ;
250
+ } else {
251
+ panelState = PanelState .SLIDING ;
252
+ }
253
+
254
+ if (panelListener != null ) {
255
+ panelListener .onPanelStateChanged (panelState );
256
+ }
257
+ }
258
+
245
259
@ Override
246
260
protected Parcelable onSaveInstanceState () {
247
261
@@ -288,6 +302,7 @@ public void onViewPositionChanged(View changedView, int left, int top, int dx, i
288
302
contentTop = top ;
289
303
requestLayout ();
290
304
calculateRatio (contentTop );
305
+ updatePanelState ();
291
306
}
292
307
293
308
@ Override
@@ -321,20 +336,6 @@ public void onViewReleased(View releasedChild, float xvel, float yvel) {
321
336
322
337
@ Override
323
338
public void onViewDragStateChanged (int state ) {
324
- // 1 -> 2 -> 0
325
- if (state == ViewDragHelper .STATE_IDLE ) {
326
- // Change the panel state while the drag content view is idle.
327
- if (contentTop > getPaddingTop () + collapseOffset ) {
328
- panelState = PanelState .EXPANDED ;
329
- } else {
330
- panelState = PanelState .COLLAPSED ;
331
- }
332
- } else {
333
- panelState = PanelState .SLIDING ;
334
- }
335
- if (panelListener != null ) {
336
- panelListener .onPanelStateChanged (panelState );
337
- }
338
339
super .onViewDragStateChanged (state );
339
340
}
340
341
};
0 commit comments