Sometimes when I change position of ViewPager I see that current tab at RecyclerTabLayout stay the same. I've figure out after some debugging where is problem.
See at method updateCurrentIndicatorPosition. This method don't change adapter's indicatorPosition if dx is 0. So RecyclerTabLayout's position and ViewPager's position do not match.
|
protected void updateCurrentIndicatorPosition(int position, float dx, float positionOffset) { |
|
if (mAdapter == null) { |
|
return; |
|
} |
|
int indicatorPosition = -1; |
|
if (dx > 0 && positionOffset >= mPositionThreshold - POSITION_THRESHOLD_ALLOWABLE) { |
|
indicatorPosition = position + 1; |
|
|
|
} else if (dx < 0 && positionOffset <= 1 - mPositionThreshold + POSITION_THRESHOLD_ALLOWABLE) { |
|
indicatorPosition = position; |
|
} |
|
if (indicatorPosition >= 0 && indicatorPosition != mAdapter.getCurrentIndicatorPosition()) { |
|
mAdapter.setCurrentIndicatorPosition(indicatorPosition); |
|
mAdapter.notifyDataSetChanged(); |
|
} |
|
} |
Sometimes when I change position of ViewPager I see that current tab at RecyclerTabLayout stay the same. I've figure out after some debugging where is problem.
See at method
updateCurrentIndicatorPosition. This method don't change adapter'sindicatorPositionifdxis 0. SoRecyclerTabLayout's position andViewPager's position do not match.RecyclerTabLayout/library/src/main/java/com/nshmura/recyclertablayout/RecyclerTabLayout.java
Lines 310 to 325 in 16e4140