SlidingPagerAdapter 继承自FragmentPagerAdapter,从主界面传递了一个callback,将在callback传递给每个fragment,这样就将fragment与activity联系起来了。其实还有很多种方式,比如在fragment的attach中获取activity中的回调。上面代码中还有一个PageAdapterTab,它又是干什么的呐?来看看代码
public enum PageAdapterTab {
PAGE_TAB1(0, Tab1ListFragment.class, R.string.page_tab1),
PAGE_TAB2(1, Tab2ListFragment.class, R.string.page_tab2),
PAGE_TAB3(2, Tab3ListFragment.class, R.string.page_tab3),
;
public final int tabIndex;
public final Class<? extends Fragment> clazz;
public final int resId;
public final int fragmentId;
private PageAdapterTab(int index, Class<? extends Fragment> clazz, int resId) {
this.tabIndex = index;
this.clazz = clazz;
this.resId = resId;
this.fragmentId = index;
}
public static final PageAdapterTab fromTabIndex(int tabIndex) {
for (PageAdapterTab value : PageAdapterTab.values()) {
if (value.tabIndex == tabIndex) {
return value;
}
}
return null;
}
}
就是一个枚举类,配置了当前要显示的fragment,这样以后就要增加就可以只修改改枚举就ok了
到此整个工程就结束了,我们截几张图看看效果:

最后在回顾一下,布局为两层,厚一层为一个Viewpager,里面包含了多个fragment,前一层为一个悬浮头与切换tab,当滑动listview时将当前显示的位置传递到主界面,同时更改主界面的位置。
代码地址如下:https://github.com/FreeSunny/RefreashTabView
以上就是本文的全部内容,希望对大家的学习有所帮助。
注:相关教程知识阅读请移步到Android开发频道。










