tablayout+viewpager标题不显示

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();
    }
}

猜你喜欢

转载自blog.csdn.net/forzhers/article/details/79756917