What changed on API Level 24 about TabLayout
?
tabLayout.setOnTabSelectedListener()
is deprecated and tabLayout.addOnTabSelectedListener()
is working bad, when you click on tab programatically, the listener is working twice. Why?
My code.
private class TabSelectedListener implements TabLayout.OnTabSelectedListener {
@Override
public void onTabSelected(TabLayout.Tab tab) {
final int tabIndex = tab.getPosition();
if (tabIndex == sCalendarTabIndex) {
openCalendar();
mTabLayout.getTabAt(mBeforeSelectedTabIndex).select();
} else {
mBeforeSelectedTabIndex = tabIndex;
final ViewPagerAdapter viewPagerAdapter = (ViewPagerAdapter) mViewPager
.getAdapter();
final MyViewPagerFragment fragment = viewPagerAdapter
.getFragmentAtIndex(tabIndex);
mViewPager.setCurrentItem(mBeforeSelectedTabIndex);
fragment.refreshContent();
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
}