protected override void OnRestoreInstanceState(IParcelable state)
        {
            ObservableListSavedState ss = (ObservableListSavedState)state;

            _mPrevFirstVisiblePosition    = ss.PrevFirstVisiblePosition;
            _mPrevFirstVisibleChildHeight = ss.PrevFirstVisibleChildHeight;
            _mPrevScrolledChildrenHeight  = ss.PrevScrolledChildrenHeight;
            _mPrevScrollY     = ss.PrevScrollY;
            _mScrollY         = ss.ScrollY;
            _mChildrenHeights = ss.ChildrenHeights;
            base.OnRestoreInstanceState(ss.SuperState);
        }
		protected override IParcelable OnSaveInstanceState() {
        IParcelable superState = base.OnSaveInstanceState();
			ObservableListSavedState ss = new ObservableListSavedState(superState)
			{
				PrevFirstVisiblePosition = _mPrevFirstVisiblePosition,
				PrevFirstVisibleChildHeight = _mPrevFirstVisibleChildHeight,
				PrevScrolledChildrenHeight = _mPrevScrolledChildrenHeight,
				PrevScrollY = _mPrevScrollY,
				ScrollY = _mScrollY,
				ChildrenHeights = _mChildrenHeights
			};
			return ss;
    }
        protected override IParcelable OnSaveInstanceState()
        {
            IParcelable superState      = base.OnSaveInstanceState();
            ObservableListSavedState ss = new ObservableListSavedState(superState)
            {
                PrevFirstVisiblePosition    = _mPrevFirstVisiblePosition,
                PrevFirstVisibleChildHeight = _mPrevFirstVisibleChildHeight,
                PrevScrolledChildrenHeight  = _mPrevScrolledChildrenHeight,
                PrevScrollY     = _mPrevScrollY,
                ScrollY         = _mScrollY,
                ChildrenHeights = _mChildrenHeights
            };

            return(ss);
        }