如何在TabLayout中获取当前选定的选项卡索引?

2022-09-01 03:24:04

当我使用操作栏选项卡时,我使用此代码。

private int getCurrentTabIndex() {
    ActionBar actionBar = activity.getSupportActionBar();
    ActionBar.Tab selectedTab = actionBar.getSelectedTab();
    if(selectedTab == null){
        return 0;
    }

    return selectedTab.getPosition();
}

但是我如何使用TabLayout做到这一点呢?


答案 1

使用 OnTabSelectedListener

然后在这个监听器中得到getPosition()。

像这样:

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener(){
    @Override
    public void onTabSelected(TabLayout.Tab tab){
        int position = tab.getPosition();
    }
});

更新

此方法已弃用。用setOnTabSelectedListener()addOnTabSelectedListener(OnTabSelectedListener)


答案 2

setOnTabSelectedListener 现已弃用。你可以改用 addOnTabSelectedListener。若要删除侦听器,可以使用 removeOnTabSelectedListener

 mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            int position = tab.getPosition();
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {
        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {
        }
    });

推荐