TORA LOG

好きなことをまとめるBlog

TabLayoutの初期タブ

TabLayout tabs = (TabLayout)v.findViewById(R.id.tablayout);

tabs.addTab(topTab.newTab().setText("1"));
tabs.addTab(topTab.newTab().setText("2"));
tabs.addTab(topTab.newTab().setText("3"));

tabs.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                switch (tab.getPosition()){
                    case 0:
                        break;
                    case 1:
                        break;
                    case 2:
                        break;
                }
            }
});
        

みなさんの中で、こういう風にAndroidのTabLayout使用している方がいると思います。
そして任意のタブに初期タブを設定するとき

tabs.getTabAt(NUM).select();

なんてしませんか?じゃなきゃ真っ白のままで何も出ませんよね…(ViewPagerと連携していれば別ですが)

しかしこれ先頭の

tabs.getTabAt(0).select();

としても何も出ません。why?
おそらくですが、初期が0番目のタブに設定されているので、0を選択してもタブが変わったと認識されないみたいです…
初期タブを設定するメソッドもなさそうですし、どうしたら先頭を初期タブとして設定できるのでしょうか?…

とりあえずの解決策として自分は

tabs.getTabAt(1).select();
tabs.getTabAt(0).select();

つまり、隣を先に表示して戻ってきてるだけですね(笑)
これだと初期ダブが必ず2個以上必要となりますが動きます。
もっと良い方法は無いですかね、教えて欲しいです…
調べていい方法あったらまた書き込みますね(^^)