TabLayout迁移到AndroidX

Marc Quebrar Tan:

我已经使用重构->迁移到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);
}
加布里埃尔·马里奥蒂(Gabriele Mariotti):

您可以使用以下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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章