TabPager不仅集成了TabLayout和ViewPager为顶部选项卡页面,也集成了RadioGroup和ViewPager为底部导航栏页面,还封装了根据具体页面根据不同的加载状态而显示不同页面的功能,也可以自定义这些页面和其他一些属性。如果某个页面加载数据不成功,切换到其他页面再回来时,框架会自动调用重试加载功能;如果加载成功了,则不再重试加载。
1. 运行效果
- 屏幕截图(
gif录制卡顿,实际运行流畅):
-
Demo下载体验,
TabPager,或者扫描二维码下载
2. 依赖
dependencies {
//1.0.3版本之前,不含底部导航栏
compile 'com.yhy:tpg:latestVersion'
//1.0.5版本及之后,加入了底部导航栏
compile 'com.yhy.widget:tabnav:latestVersion'
}3. 使用说明
4. 嵌套使用
嵌套使用使用方法跟普通使用一样,唯一需要注意的是创建适配器时的
FragmentManager,如果是一级Fragment的话,需要传入getSupportFragmentManager(),否则只能是getChildFragmentManager()
//mAdapter = new PagersAdapter(getFragmentManager());
/*
//这里需要用getChildFragmentManager()
getChildFragmentManager()是fragment中的方法, 返回的是管理当前fragment内部子fragments的manager.
getFragmentManager()在activity和fragment中都有.
在activity中, 如果用的是v4 support库, 方法应该用getSupportFragmentManager(),返回的是管理activity中fragments的manager.
在fragment中, 还叫getFragmentManager(), 返回的是把自己加进来的那个manager.
也即, 如果fragment在activity中, fragment.getFragmentManager()得到的是activity中管理fragments的那个manager.如果fragment是嵌套在另一个fragment中, fragment.getFragmentManager()得到的是它的parent的getChildFragmentManager().
总结就是: getFragmentManager()是本级别管理者, getChildFragmentManager()是下一级别管理者.
这实际上是一个树形管理结构.
*/
mAdapter = new PagersAdapter(getChildFragmentManager());
tpgView.setAdapter(mAdapter);句终
哈哈。。




