tablayout使用setupwithViewpager()方法绑定ViewPager时候会造成tablayou.add(tablayout.newTab(""))添加标题的方法失效,不显示tablayout标题,原因是tablayout源码里面在关联viewpager的时候会走removeAllTabs的方法,清空所有tab;
解决办法一:在setupWithViewPager方法后清空tab,在添加
tabLayout.setupWithViewPager(viewPager); tabLayout.removeAllTabs(); for (int i = 0; i <tabs.length ; i++) { tabLayout.addTab(tabLayout.newTab().setText(tabs[i])); }
解决办法二:FragmentpagerAdapter的getpageTitle方法中给tablayout赋值
class MyAdapter extends FragmentPagerAdapter{ public MyAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return list.get(position); } @Override public CharSequence getPageTitle(int position) { return tabs[position]; } @Override public int getCount() { return list.size(); } }