TabLayout配合ViewPager最普通使用

本来几个月前用过,现在忘了....现在记下来,怕自己忘了

1. xml 文件中 :

<android.support.design.widget.TabLayout        //这里面还有很多属性,看名字就知道什么用的,有空随便试试
    android:id="@+id/tl_fragment_main_home_tablayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
    
    //tab文字的造型可以自定义一个style文件给tablayout设置上
    如: app:tabTextAppearance="@style/xxx"

<View   //这个是viewpager和tablayout之间的一个线,不用管,装饰用的
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@drawable/main_screen_divider" />

<android.support.v4.view.ViewPager
    android:id="@+id/vp_fragment_main_home_viewpager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />

2. java代码中:

  1. 首先在viewpager的adpater中要实现一个getPageTitle()方法:

这个方法返回值就是在tablayout中各个tab显示的文字

public class HomeFragmentViewPagerAdapter extends FragmentStatePagerAdapter {
    private List<Fragment> fragments;
    private List<String> titles;

    public HomeFragmentViewPagerAdapter(FragmentManager fm, List<Fragment> fragments, List<String> titles) {
        super(fm);
        this.fragments = fragments;
        this.titles = titles;

    @Override
    public CharSequence getPageTitle(int position) {
        return titles.get(position);
    }
}

  1. 将tablayout和viewpager关联:
tabLayout.setupWithViewPager(vp_fragment_main_home_viewpager);
tabLayout.setTabTextColors(XXX);
tabLayout.setSelectedTabIndicatorColor(YYY);
tabLayout.setTabMode(TabLayout.MODE_FIXED);//表示tablayout中的元素固定住不能滑动,
//tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE) 表示tablayout中的元素可以滑动

//其他属性自己试,我所需要的已经完成了
这样你的tab就会显示viewpager的title内容了,

不过如果你对你的tab有更高的要求,要在里面显示些奇怪的东西,也可以,那么在Adapter中设置title就无所谓了,反正你也会改掉

tabLayout.getTabAt(0).setText("11111111");      //当然还有更多属性可以更改,自己去试

tabLayout.getTabAt(1).setCustomView(R.layout.entry); //设置了自定义view,setText之类的方法就没用了

1

1

1

1

1

1

1

1

1

1

1

1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容