Android应用中滑动标签页被经常使用,一方面可以方便操作,一方面将要显示的内容进行分类从而方便阅读。一般我比较喜欢使用FragmentTabHost与Viewpager结合以实现这种动态效果。主要的思路就是将自己的标题显示在FragmentTabHost中,而将要显示的内容放置在ViewPager中显示,分别对FragmentTabHost和ViewPager设置changeListener,在当前标签页发生变化时调整自己的currentId。
仿照官方文档中给出的利用ActonBar和ViewPager的例子,我在这边也是用了一个TabsAdapter来完成标签也切换的工作。
public static class TabsAdapter extends FragmentPagerAdapter implements
OnPageChangeListener, OnTabChangeListener {
private final Context mContext;
private final ViewPager mViewPager;
private final FragmentTabHost mTabHost;
private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
static final class TabInfo {//我们可以利用一个bundle对象来保存Fragment中的数据
private final Class<?> clss;
private final Bundle args;
TabInfo(Class<?> _class, Bundle _args) {
clss = _class;
args = _args;
}
}
public TabsAdapter(FragmentActivity activity, FragmentTabHost tabHost,
ViewPager pager) {
super(activity.getSupportFragmentManager());
mContext = activity;
mViewPager = pager;
mTabHost = tabHost;
mViewPager.setAdapter(this);
mViewPager.setOnPageChangeListener(this);
mTabHost.setOnTabChangedListener(this);
}
//当TabHost添加标签页后也需要调用此方法以保持和ViewPager的一致
public void addTab(Class<?> clss, Bundle args) {
TabInfo info = new TabInfo(clss, args);
mTabs.add(info);
notifyDataSetChanged();
}
//设置TabHost改变后同时改变ViewPager
@Override
public void onTabChanged(String arg0) {
// TODO Auto

本文介绍了如何在Android应用中实现滑动标签页,通常使用FragmentTabHost和ViewPager结合来达到动态效果。通过在FragmentTabHost中展示标题,ViewPager中加载内容,并设置监听器来同步标签页和内容的切换。作者还提到了仿照官方文档,使用TabsAdapter来处理标签页切换的逻辑。
最低0.47元/天 解锁文章
1100

被折叠的 条评论
为什么被折叠?



