创build选项卡布局时会提示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已弃用
但是,程序似乎工作得很好。 我可以知道发生了什么事吗?
我可以知道发生了什么事吗?
弃用意味着他们认为这不是一个好办法,或者他们已经find了一个更好的办法,而这个弃用的方法将来会被删除。
解决方法是使用addOnTabSelectedListener而不是setOnTabSelectedListener 。
它以几乎相同的方式工作。
与addOnTabSelectedListener
不同的是:
- 您可以添加多个侦听器。 用
setOnTabSelectedListener
你只能有一个。 - 你应该在removeOnTabSelectedListener完成之后移除监听器 。
一般的经验法则:从来没有使用过时的方法。
由于这个方法现在是drepecatad,你可以使用新的方法
addOnTabSelectedListener(OnTabSelectedListener)
实际上,此更改允许将多个TabSelected侦听器添加到一个TabLayout。
改用下面的代码:
tablayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager)); viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tablayout));
如果您想在点击标签或滑动浏览器时同步它们,上面的代码是同步的关键。