这次依然是介绍一个功能类:TabPagerManager
这个类封装了TabLayout 和 ViewPager
只需要非常简单的 3~4行代码 就搞定了 TabLayout+ViewPager 适配等功能的开发
这里还是先给出GitHub开源地址:点这里
下面是详细描述~
准备工作当然是先把TabLayout和ViewPager初始化啦~
一般都是:
tabLayout = findViewById(你的tabLayout id);
viewPager = findViewById(你的ViewPager id);
接下来就是具体使用了
GitHub项目地址:点这里 下载:点这里
下载完成后将其复制到自己的安卓项目中
TabPagerManager.with(fragmentManager)
.setTabPager(tabLayout, viewPager)
.add("tabName_1", new Fragment())
.add("tabName_2", new Fragment())
.commit();
解释一下上面的函数:
with:传入一个FragmentManager
setTabPager:把你的TabLayout和ViewPager传进去就可以了
add:第一个参数是你的tab标题,第二个参数是该标题对应ViewPager里的fragment
commit:在设置完所有后调用它整个才会生效
关于 FragmentManager,这里需要注意一下:
(1)如果是在Activity里,使用 getSupportFragmentManager() 方法
(2)如果是在Fragment里,使用 getChildFragmentManager() 方法
一共有三种模式:
① EQUAL_TEXT (默认为此模式)
② EQUAL_TAB_CENTER
③ EQUAL_TAB_FILL
使用方式如下:
TabPagerManager.with(fragmentManager)
.setTabPager(tabLayout, viewPager)
.add("tabName_1", new Fragment())
.add("tabName_2", new Fragment())
.setIndicatorLineMode(TabPagerManager.EQUAL_TAB_FILL)
.commit();
这个只在 EQUAL_TEXT 模式下生效,默认间距为20
使用:
TabPagerManager.with(getChildFragmentManager())
.setTabPager(tabLayout, viewPager)
.add("Tab_1", new ChineseComicSubFragment())
.add("Tab_2", new JapaneseComicSubFragment())
.setIndicatorLineMode(TabPagerManager.EQUAL_TEXT)
.setTabInterval(30)
.commit();
只需使用函数:
add(String tabTitle, Fragment fragment, Boolean isSelected)
例如:
TabPagerManager.with(fragmentManager)
.setTabPager(tabLayout, viewPager)
.add("关注", new Fragment())
.add("热门", new Fragment(), true)
.commit();
这个很简单,只需要在初始的时候先自定义好自己的tabLayout和viewPager,之后再传入TabPagerManger中就行了.
例如在获取tabLayout的ID后,先对tabLayout设置下划线颜色、字体颜色等等,然后再使用:
TabPagerManager.with(fragmentManager)
.setTabPager(tabLayout, viewPager)
.add("tabName_1", new Fragment())
.commit();
就行了