使用TabLayout遇到的坑

TabFragmentAdapter fragmentAdapter = new TabFragmentAdapter(getActivity().getSupportFragmentManager(), mFragmentList);
viewpager.setAdapter(fragmentAdapter);//ViewPager设置适配器
tablayout.setupWithViewPager(viewpager);//TabLayoutViewPager关联起来。

慎用

tlSongs.setTabsFromPagerAdapter(fragmentAdapter);

如果你使用的自定义的item布局,上面方法不要用了,它只是关联item里的文字内容

然后给TabLayout的item设置自定义的布局

for (int i = 0; i < fragmentAdapter.getCount(); i++) {
    TabLayout.Tab tab = tablayout.getTabAt(i);//获得每一个tab
    tab.setCustomView(R.layout.item_tablayout);//给每一个tab设置view
    if (i == 0) {
        // 设置第一个tabTextView是被选择的样式
        tab.select();
        tab.getCustomView().findViewById(R.id.tab_text).setSelected(true);//第一个tab被选中
    }
    TextView textView = (TextView) tab.getCustomView().findViewById(R.id.tab_text);
    textView.setText(titles.get(i));//设置tab上的文字
}
如果你要设置
tablayout.setOnTabSelectedListener{}

一定要在给TabLayout设置完自定义布局后再使用,否则监听无效

你可能感兴趣的:(开发遇到的坑)