public override void OnScrolled(RecyclerView recyclerView, int dx, int dy)
        {
            base.OnScrolled(recyclerView, dx, dy);

            if (_onScrollListener != null)
            {
                _onScrollListener.OnScrolled(recyclerView, dx, dy);
            }

            int yOffset = _animator.YOffsets[recyclerView];

            yOffset += dy;
            _animator.YOffsets.AddOrUpdate(recyclerView, yOffset);             //save the new offset

            //first time you get 0, don't share it to others scrolls
            if (yOffset == 0 && !_firstZeroPassed)
            {
                _firstZeroPassed = true;
                return;
            }

            //only if yOffset changed
            if (_animator.IsNewYOffset(yOffset))
            {
                _animator.OnMaterialScrolled(recyclerView, yOffset);
            }
        }
        public void OnScrollChanged(int yOffset, bool b, bool b2)
        {
            if (_observableScrollViewCallbacks != null)
            {
                _observableScrollViewCallbacks.OnScrollChanged(yOffset, b, b2);
            }

            if (_animator.IsNewYOffset(yOffset))
            {
                _animator.OnMaterialScrolled(_webView, yOffset);
            }
        }
        public void OnScrollChanged(int yOffset, bool b, bool b2)
        {
            if (_observableScrollViewCallbacks != null)
            {
                _observableScrollViewCallbacks.OnScrollChanged(yOffset, b, b2);
            }

            //first time you get 0, don't share it to others scrolls
            if (yOffset == 0 && !_firstZeroPassed)
            {
                _firstZeroPassed = true;
                return;
            }

            //only if yOffset changed
            if (_animator.IsNewYOffset(yOffset))
            {
                _animator.OnMaterialScrolled(_scrollView, yOffset);
            }
        }