public override void OnScrolled(RecyclerView recyclerView, int dx, int dy) { base.OnScrolled(recyclerView, dx, dy); if (LayoutManager == null) { LayoutManager = (LinearLayoutManager)recyclerView.GetLayoutManager(); } var visibleItemCount = recyclerView.ChildCount; var totalItemCount = recyclerView.GetAdapter().ItemCount; var pastItems = LayoutManager.FindFirstVisibleItemPosition(); if (visibleItemCount + pastItems + 6 < totalItemCount) { return; } if (IsLoading) { return; } LoadMoreEvent?.Invoke(this, null); }
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) { try { if (LayoutManager == null) { LayoutManager = (LinearLayoutManager)recyclerView.GetLayoutManager(); } var visibleItemCount = recyclerView.ChildCount; var totalItemCount = recyclerView.GetAdapter().ItemCount; var pastItems = LayoutManager.FindFirstVisibleItemPosition(); if (visibleItemCount + pastItems + 10 < totalItemCount) { return; } if (IsLoading) { return; } LoadMoreEvent?.Invoke(this, null); } catch (Exception e) { Console.WriteLine(e); } }
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 pastVisibleItems = LayoutManager.FindFirstVisibleItemPosition(); if (pastVisibleItems == 0 && visibleItemCount != totalItemCount) { //Load More from API Request LoadMoreEvent?.Invoke(this, null); //Start Load More messages From Database } else { if (SwipeRefreshLayout.Refreshing) { SwipeRefreshLayout.Refreshing = false; SwipeRefreshLayout.Enabled = false; } } } catch (Exception e) { Console.WriteLine(e); } }
public override void OnScrolled(RecyclerView recyclerView, int dx, int dy) { base.OnScrolled(recyclerView, dx, dy); if (!IsLoading) { IsLoading = true; var visibleItemCount = recyclerView.ChildCount; var totalItemCount = recyclerView.GetAdapter().ItemCount; var pastVisiblesItems = LayoutManager.FindFirstVisibleItemPosition(); if (dy > 0 && Direction == ScrollDirection.DOWN) //check for scroll down { if (totalItemCount != 0 //&& pastVisiblesItems > 0 && ( RemainingItemsToTriggerFetch >= totalItemCount || (visibleItemCount + pastVisiblesItems + RemainingItemsToTriggerFetch) >= totalItemCount )) { LoadMoreEvent?.Invoke(this, null); } } else if (dy < 0 && Direction == ScrollDirection.UP) { if (pastVisiblesItems < RemainingItemsToTriggerFetch) { LoadMoreEvent?.Invoke(this, null); } } IsLoading = false; } }
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; dynamic pastVisibleItems; if (LayoutManager is LinearLayoutManager managerLinear) { pastVisibleItems = managerLinear.FindFirstVisibleItemPosition(); } else if (LayoutManager is GridLayoutManager managerGrid) { pastVisibleItems = managerGrid.FindFirstVisibleItemPosition(); } else if (LayoutManager is StaggeredGridLayoutManager managerStaggeredGrid) { int[] firstVisibleItemPositions = new int[SpanCount]; pastVisibleItems = managerStaggeredGrid.FindFirstVisibleItemPositions(firstVisibleItemPositions)[0]; } else { pastVisibleItems = LayoutManager.FindFirstVisibleItemPosition(); } if (visibleItemCount + pastVisibleItems + 4 < totalItemCount) { return; } if (IsLoading) //&& !recyclerView.CanScrollVertically(1) { return; } //IsLoading = true; LoadMoreEvent?.Invoke(this, null); //if (visibleItemCount + pastVisibleItems + 8 >= totalItemCount) //{ // //Load More from API Request // if (IsLoading == false) // { // LoadMoreEvent?.Invoke(this, null); // IsLoading = true; // } //} } catch (Exception exception) { Console.WriteLine(exception); } }
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) { LoadMoreEvent?.Invoke(); } }
public override void OnScrolled(RecyclerView recyclerView, int dx, int dy) { base.OnScrolled(recyclerView, dx, dy); var visibleItemCount = recyclerView.ChildCount; var pastVisiblesItems = this._layoutManager.FindFirstVisibleItemPosition(); var totalItemCount = recyclerView.GetAdapter().ItemCount; var lastItemPosition = visibleItemCount + pastVisiblesItems; if (this.lastLoaded != lastItemPosition && lastItemPosition >= totalItemCount) { LoadMoreEvent?.Invoke(this, null); this.lastLoaded = recyclerView.GetAdapter().ItemCount; } }
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 (totalItemCount != 0 //&& pastVisiblesItems > 0 && ( RemainingItemsToTriggerFetch >= totalItemCount || (visibleItemCount + pastVisiblesItems + RemainingItemsToTriggerFetch) >= totalItemCount )) { LoadMoreEvent?.Invoke(this, null); } }
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 layoutManager = recyclerView.GetLayoutManager() as LinearLayoutManager; var pastVisiblesItems = layoutManager?.FindFirstVisibleItemPosition(); if (visibleItemCount > 0 && totalItemCount % StaticAppSettings.PullDataPageSize > 0) { return; } if (visibleItemCount + pastVisiblesItems >= totalItemCount - _loadWhenNItemsToTheEnd) { LoadMoreEvent?.Invoke(this, null); } }
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; int[] firstVisibleItemPositions; // Check if we're running on Android 5.0 or higher if ((int)Build.VERSION.SdkInt < 23) { firstVisibleItemPositions = new int[2]; } else { firstVisibleItemPositions = new int[3]; } var firstVisibleItem = ((StaggeredGridLayoutManager)recyclerView.GetLayoutManager()).FindFirstVisibleItemPositions( firstVisibleItemPositions)[0]; var pastVisiblesItems = firstVisibleItem; if (visibleItemCount + pastVisiblesItems + 8 >= totalItemCount) { if (IsLoading == false) { LoadMoreEvent?.Invoke(this, null); IsLoading = true; } } } catch (Exception exception) { Crashes.TrackError(exception); } }
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) { Console.WriteLine(exception); } }
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; int pastVisibleItems; switch (LayoutManager) { case LinearLayoutManager managerLinear: pastVisibleItems = managerLinear.FindFirstVisibleItemPosition(); break; default: switch (LayoutManager) { case GridLayoutManager managerGrid: pastVisibleItems = managerGrid.FindFirstVisibleItemPosition(); break; case StaggeredGridLayoutManager managerStaggeredGrid: { int[] firstVisibleItemPositions = new int[SpanCount]; pastVisibleItems = managerStaggeredGrid.FindFirstVisibleItemPositions(firstVisibleItemPositions)[0]; break; } default: pastVisibleItems = LayoutManager?.FindFirstVisibleItemPosition() ?? 0; break; } break; } if (visibleItemCount + pastVisibleItems + 4 < totalItemCount) { return; } switch (IsLoading) { //&& !recyclerView.CanScrollVertically(1) case true: return; default: //IsLoading = true; LoadMoreEvent?.Invoke(this, null); //if (visibleItemCount + pastVisibleItems + 8 >= totalItemCount) //{ // //Load More from API Request // if (IsLoading == false) // { // LoadMoreEvent?.Invoke(this, null); // IsLoading = true; // } //} break; } } catch (Exception exception) { Methods.DisplayReportResultTrack(exception); } }