Beispiel #1
0
            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());
            }
Beispiel #2
0
        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);
				}
			}
		}
Beispiel #6
0
        /**
         * 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();
     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();
			};

		}