不推荐使用 setOnTabSelectedListener

对于下面的代码,我总是看到一个划掉的 SetOnTabSelectedListener

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());
}
}

显示的错误是:

不推荐使用 setOnTabSelectedListener

然而,这个程序似乎运行得很好。我可以知道发生了什么事吗?

51650 次浏览

由于现在不推荐使用 setOnTabSelectedListener,因此可以使用新方法

addOnTabSelectedListener(OnTabSelectedListener)

此更改允许向单个 TabLayout添加多个选项卡选择侦听器。

我能知道发生了什么吗?

弃用意味着他们认为这不是一个好的方法,或者他们已经找到了一个更好的方法,这种弃用的方法将在未来被删除。

解决办法是使用 AddOnTabSelectedListener而不是 一个 href = “ https://developer.android.com/reference/android/support/design/widget/TabLayout.html # setOnTabSelectedListener (android.support. widget.TabLayout.OnTabSelectedListener)”rel = “ noReferrer”> setOnTabSelectedListener
工作原理几乎一样。

addOnTabSelectedListener不同的是:


一般经验法则: 永远不要使用过时的方法。

使用以下代码代替:

tablayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager));
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tablayout));

如果你想同步他们当点击标签或滑动浏览器上面的代码是同步的关键。

在科特林使用如下代码;

   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
}




})