先来看张效果图,在首页部分,上方分为五个标题,可以滑动展示不同主题的内容。最初的实现是在首页这个frament中加入viewpager但是发现数据不显示。
所以换成了在frament中嵌套frament。
布局代码很容易,下面是主要逻辑代码:
首先我们获取布局中的viewpager:pager = (ViewPager) parentView.findViewById(R.id.vii);
新建五个frament并绑定相应布局:
home1 = new TabFrament1();
home2 = new TabFrament2();
home3 = new TabFrament3();
home4 = new TabFrament4();
home5 = new TabFrament5();
views = new ArrayList<Fragment>();
添加进来:
views.add(home1);
views.add(home2);
views.add(home3);
views.add(home4);
views.add(home5);
////
FragmentManager fragmentManager = getFragmentManager();
pager.setAdapter(new MyFragmentPagerAdapter(fragmentManager,
views));//绑定自定义的FragmentPagerAdapter
pager.setOnPageChangeListener(new MyOnPageChangeListener());//监听事件
pager.setCurrentItem(0);//设置当前所处的位置
/*****************自定义adapter***************/
public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
private ArrayList<Fragment> fragmentsList;
public MyFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
public MyFragmentPagerAdapter(FragmentManager fm, ArrayList<Fragment> fragments) {
super(fm);
this.fragmentsList = fragments;
}
@Override
public int getCount() {
return fragmentsList.size();
}
@Override
public Fragment getItem(int arg0) {
return fragmentsList.get(arg0);
}
@Override
public int getItemPosition(Object object) {
return super.getItemPosition(object);
}
/*******************滑动监听事件****************/
public class MyOnPageChangeListener implements OnPageChangeListener {
@Override
public void onPageSelected(int arg0) {
resetimage();
switch (arg0) {
case 0:
i1.setTextColor(Color.RED);
pager.setCurrentItem(0);
break;
case 1:
i2.setTextColor(Color.RED);
pager.setCurrentItem(1);
break;
case 2:
i3.setTextColor(Color.RED);
pager.setCurrentItem(2);
break;
case 3:
i4.setTextColor(Color.RED);
pager.setCurrentItem(3);
break;
case 4:
i5.setTextColor(Color.RED);
pager.setCurrentItem(4);
break;
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
}
欢迎关注技术公众号,微信号搜索ColorfulCode 代码男人
分享技术文章,投稿分享,不限技术种类,不限技术深度,让更多人因为分享而受益。