PageRange[] ComputeWrittenPageRanges(SparseIntArray writtenPages) { var pageRanges = new List <PageRange> (); int start = -1; int end = -1; int writtenPageCount = writtenPages.Size(); for (int i = 0; i < writtenPageCount; i++) { if (start < 0) { start = writtenPages.ValueAt(i); } int oldEnd = end = start; while (i < writtenPageCount && (end - oldEnd) <= 1) { oldEnd = end; end = writtenPages.ValueAt(i); i++; } var pageRange = new PageRange(start, end); pageRanges.Add(pageRange); start = end = -1; } return(pageRanges.ToArray()); }
private void Init() { _mChildrenHeights = new SparseIntArray(); _mHeaderViewInfos = new List <FixedViewInfo>(); _mFooterViewInfos = new List <FixedViewInfo>(); base.SetClipChildren(false); ScrollStateChanged += (sender, args) => { if (_mOriginalScrollListener != null) { _mOriginalScrollListener.OnScrollStateChanged(args.View, args.ScrollState); } }; Scroll += (sender, args) => { if (_mOriginalScrollListener != null) { _mOriginalScrollListener.OnScroll(args.View, args.FirstVisibleItem, args.VisibleItemCount, args.TotalItemCount); } // AbsListView#invokeOnItemScrollListener calls onScrollChanged(0, 0, 0, 0) // on Android 4.0+, but Android 2.3 is not. (Android 3.0 is unknown) // So call it with onScrollListener. OnScrollChanged(); }; }
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 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); }
/** * Called by CREATOR. */ private ObservableListSavedState(Parcel input) : base(input) { PrevFirstVisiblePosition = input.ReadInt(); PrevFirstVisibleChildHeight = input.ReadInt(); PrevScrolledChildrenHeight = input.ReadInt(); PrevScrollY = input.ReadInt(); ScrollY = input.ReadInt(); ChildrenHeights = new SparseIntArray(); int numOfChildren = input.ReadInt(); if (0 < numOfChildren) { for (int i = 0; i < numOfChildren; i++) { int key = input.ReadInt(); int value = input.ReadInt(); ChildrenHeights.Put(key, value); } } }
private void Init() { _mChildrenHeights = new SparseIntArray(); CheckLibraryVersion(); }
private void Init() { _mChildrenHeights = new SparseIntArray(); _mHeaderViewInfos = new List<FixedViewInfo>(); _mFooterViewInfos = new List<FixedViewInfo>(); base.SetClipChildren(false); ScrollStateChanged += (sender, args) => { if (_mOriginalScrollListener != null) { _mOriginalScrollListener.OnScrollStateChanged(args.View, args.ScrollState); } }; Scroll += (sender, args) => { if (_mOriginalScrollListener != null) { _mOriginalScrollListener.OnScroll(args.View, args.FirstVisibleItem, args.VisibleItemCount, args.TotalItemCount); } // AbsListView#invokeOnItemScrollListener calls onScrollChanged(0, 0, 0, 0) // on Android 4.0+, but Android 2.3 is not. (Android 3.0 is unknown) // So call it with onScrollListener. OnScrollChanged(); }; }