I always see a crossed out line setOnTabSelectedListener for the following code
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
}
And the error shown is:
setOnTabSelectedListener is deprecated
However, the program seems to work just fine. May I know what's going on?
May i know whats going on ?
Deprecated means that they decided this is not a good way to do it or they have found a better way of doing it, and this deprecated method will be removed in the future.
The fix is to use addOnTabSelectedListener instead of setOnTabSelectedListener.
It works almost the same way.
The difference is that with addOnTabSelectedListener
:
setOnTabSelectedListener
you could only have one.General rule of thumb: never use deprecated methods.
As setOnTabSelectedListener
is deprecated now, you can use the new method
addOnTabSelectedListener(OnTabSelectedListener)
This change allows to add multiple tab selection listeners to a single TabLayout
.
in kotlin usage like below code;
tabLayoutView.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabReselected(p0: TabLayout.Tab?) {
}
override fun onTabUnselected(p0: TabLayout.Tab?) {
}
override fun onTabSelected(p0: TabLayout.Tab?) {
viewPager.currentItem = tabLayoutView.selectedTabPosition
}
})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With