在开发的过程中,tablayout + viewpager + fragment 是很常用的组合,如果没有特别的要求,一般都能够满足,tablayout 和viewpager之间的配合其实最重要最直接的就是tableayout的addOnTabSelectedListener 和 viewpager 的addOnPageChangeListener,在切换的时候都会互相的切换对方的当前选中项,其中Tablayout 中的两个静态内部类很直接的说明了tablayout和viewpager之间的关系 TabLayoutOnPageChangeListener 和 ViewPagerOnTabSelectedListener:
内部内TabLayoutOnPageChangeListener :
public static class TabLayoutOnPageChangeListener implements ViewPager.OnPageChangeListener {
private final WeakReference<TabLayout> mTabLayoutRef;
private int mPreviousScrollState;
private int mScrollState;
public TabLayoutOnPageChangeListener(TabLayout tabLayout) {
mTabLayoutRef = new WeakReference<>(tabLayout);
}
@Override
public void onPageScrollStateChanged(final int state) {
mPreviousScrollState = mScrollState;
mScrollState = state;
}
@Override