Cheesebaron.SlidingUpPanel.SlidingUpPanelLayout.DragHelperCallback.OnViewReleased C# (CSharp) Method

OnViewReleased() public method

public OnViewReleased ( Android.Views.View releasedChild, float xvel, float yvel ) : void
releasedChild Android.Views.View
xvel float
yvel float
return void
            public override void OnViewReleased(View releasedChild, float xvel, float yvel)
            {
                var top = _panelLayout._isSlidingUp
                    ? _panelLayout.SlidingTop
                    : _panelLayout.SlidingTop - _panelLayout._slideRange;

                if (!FloatNearlyEqual(_panelLayout._anchorPoint, 0))
                {
                    int anchoredTop;
                    float anchorOffset;

                    if (_panelLayout._isSlidingUp)
                    {
                        anchoredTop = (int) (_panelLayout._anchorPoint * _panelLayout._slideRange);
                        anchorOffset = (float) anchoredTop / _panelLayout._slideRange;
                    }
                    else
                    {
                        anchoredTop = _panelLayout._panelHeight -
                                      (int) (_panelLayout._anchorPoint * _panelLayout._slideRange);
                        anchorOffset = (float)(_panelLayout._panelHeight - anchoredTop) / _panelLayout._slideRange;
                    }

                    if (yvel > 0 || (FloatNearlyEqual(yvel, 0) && _panelLayout._slideOffset >= (1f + anchorOffset) / 2))
                        top += _panelLayout._slideRange;
                    else if (FloatNearlyEqual(yvel, 0) && _panelLayout._slideOffset < (1f + anchorOffset) / 2 &&
                             _panelLayout._slideOffset >= anchorOffset / 2)
                        top += (int) (_panelLayout._slideRange * _panelLayout._anchorPoint);
                }
                else if (yvel > 0 || (FloatNearlyEqual(yvel, 0) && _panelLayout._slideOffset > 0.5f))
                    top += _panelLayout._slideRange;

                _panelLayout._dragHelper.SettleCapturedViewAt(releasedChild.Left, top);
                _panelLayout.Invalidate();
            }