我已经使用重构->迁移到AndroidX将Android应用迁移到了AndroidX。还修复了需要手动修复的问题。剩下的唯一问题是TabLayout
。
以前,在AndroidX迁移之前,我正在使用以下代码:
@Override
public void setOnTabSelectedListener(OnTabSelectedListener onTabSelectedListener) {
......
super.setOnTabSelectedListener(onTabSelectedListener);
}
@Override
void selectTab(Tab tab) {
........
super.selectTab(tab);
}
但是使用AndroidX时,在构建时出现此错误:方法未覆盖或实现超类型的方法
和
selectTab(com.google.android.material.tabs.TabLayout.Tab)
不公开。无法从外部包访问。
如何将其正确迁移到AndroidX?
编辑:忘记提及我有自己的Tab类,而我只是扩展TabLayout
。我已经覆盖了,selectTab
因为在致电父级之前我不愿意对其做任何事情selectTab()
。在AndroidX中,selectTab
不再公开,因此如何覆盖它以首先执行某些操作?
AndroidX之前的工作代码
@Override
void selectTab(Tab tab) {
//if condition met, return;
super.selectTab(tab);
}
您可以使用以下selectTab
方法:
TabLayout tabLayout = findViewById(R.id.tab_layout);
tabLayout.selectTab(tabLayout.getTabAt(index));
关于侦听器,您可以使用 addOnTabSelectedListener
tabLayout.addOnTabSelectedListener(OnTabSelectedListener);
如果您使用的是自定义TabLayout
,请使用:
@Override
public void selectTab(@Nullable Tab tab) {
//your code....
super.selectTab(tab);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句