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

                var visibleItemCount  = recyclerView.ChildCount;
                var totalItemCount    = recyclerView.GetAdapter().ItemCount;
                var pastVisiblesItems = LayoutManager.FindFirstVisibleItemPosition();

                if ((visibleItemCount + pastVisiblesItems) >= totalItemCount && !IsLoading && dy > 0)
                {
                    LoadMoreEvent?.Invoke(this, null);
                }

                if (scrolledDistance > HIDE_THRESHOLD && controlsVisible)
                {
                    OnHide?.Invoke(this, null);
                    controlsVisible  = false;
                    scrolledDistance = 0;
                }

                else if (scrolledDistance < -HIDE_THRESHOLD && !controlsVisible)
                {
                    OnShow?.Invoke(this, null);
                    controlsVisible  = true;
                    scrolledDistance = 0;
                }

                if ((controlsVisible && dy > 0) || (!controlsVisible && dy < 0))
                {
                    scrolledDistance += dy;
                }
            }
        public override void OnScrolled(RecyclerView recyclerView, int dx, int dy)
        {
            base.OnScrolled(recyclerView, dx, dy);

            var visibleItemCount  = recyclerView.ChildCount;
            var totalItemCount    = recyclerView.GetAdapter().ItemCount;
            var pastVisiblesItems = gridLayoutManager.FindFirstVisibleItemPosition();

            if ((visibleItemCount + pastVisiblesItems) >= totalItemCount)
            {
                Handler handler = new Handler();
                handler.Post(StartAction);
            }
        }
Example #3
0
            public override void OnScrolled(RecyclerView recyclerView, int dx, int dy)
            {
                try
                {
                    base.OnScrolled(recyclerView, dx, dy);

                    var visibleItemCount = recyclerView.ChildCount;
                    var totalItemCount   = recyclerView.GetAdapter().ItemCount;

                    var pastVisiblesItems = LayoutManager.FindFirstVisibleItemPosition();
                    if (visibleItemCount + pastVisiblesItems + 8 >= totalItemCount)
                    {
                        if (IsLoading == false)
                        {
                            LoadMoreEvent?.Invoke(this, null);
                            IsLoading = true;
                        }
                    }
                }
                catch (Exception exception)
                {
                    Crashes.TrackError(exception);
                }
            }