diff --git a/omegarecyclerview/src/main/java/com/omega_r/libs/omegarecyclerview/viewpager/OmegaPagerRecyclerView.java b/omegarecyclerview/src/main/java/com/omega_r/libs/omegarecyclerview/viewpager/OmegaPagerRecyclerView.java index cb3c8d8..51d8741 100644 --- a/omegarecyclerview/src/main/java/com/omega_r/libs/omegarecyclerview/viewpager/OmegaPagerRecyclerView.java +++ b/omegarecyclerview/src/main/java/com/omega_r/libs/omegarecyclerview/viewpager/OmegaPagerRecyclerView.java @@ -10,6 +10,7 @@ import androidx.viewpager.widget.ViewPager; import androidx.recyclerview.widget.RecyclerView; import android.util.AttributeSet; +import android.util.Log; import android.view.View; import android.view.animation.Interpolator; @@ -306,9 +307,10 @@ public void setCurrentItem(int item) { * @param smoothScroll True to smoothly scroll to the new item, false to transition immediately */ public void setCurrentItem(int item, boolean smoothScroll) { - if (item < 0 || item >= getItemCount()) { + if ((item < 0 || item >= getItemCount()) && !getLayoutManager().isInfinite()) { return; } + Log.d("COUNT_ITEM", String.valueOf(item)); if (smoothScroll) { smoothScrollToPosition(item); } else { diff --git a/omegarecyclerview/src/main/java/com/omega_r/libs/omegarecyclerview/viewpager/ViewPagerLayoutManager.java b/omegarecyclerview/src/main/java/com/omega_r/libs/omegarecyclerview/viewpager/ViewPagerLayoutManager.java index 6de1c92..6888b9e 100644 --- a/omegarecyclerview/src/main/java/com/omega_r/libs/omegarecyclerview/viewpager/ViewPagerLayoutManager.java +++ b/omegarecyclerview/src/main/java/com/omega_r/libs/omegarecyclerview/viewpager/ViewPagerLayoutManager.java @@ -16,6 +16,7 @@ import androidx.recyclerview.widget.LinearSmoothScroller; import androidx.recyclerview.widget.RecyclerView; import android.util.AttributeSet; +import android.util.Log; import android.util.SparseArray; import android.view.View; import android.view.ViewGroup; @@ -265,7 +266,7 @@ private void fill(RecyclerView.Recycler recycler) { final int endBound = getClipToPadding() ? mOrientationHelper.getViewEnd( getWidth() - getPaddingRight(), - getHeight() - getPaddingBottom()) + getHeight() - getPaddingBottom()) : mOrientationHelper.getViewEnd(getWidth(), getHeight()); if (mScrolled >= 0) { @@ -452,6 +453,7 @@ private int calculateScrollPosition(int position) { int itemCount = super.getItemCount(); if (mIsInfinite && itemCount != 0) { int currentWindowPosition = mCurrentPosition / itemCount; + Log.d("Scroll debage RV", "mCurrentPosition = " + mCurrentPosition + " currentWindowPosition = " + currentWindowPosition + " position = " + position); if (mCurrentPosition > position + (currentWindowPosition * itemCount)) { currentWindowPosition++; }