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();
}