1 先看看实现的效果:


ps:上面每一帧Fragment中,包含是来自网络的图片;

实现ViewPager+Fragment的页面滑动和底部导航原理

主布局文件如下:

<?xml version="1.0" encoding="utf-8"?>                                                            


MainActivity核心代码如下:

给FragmentList添加数据

mFragmentList.add(oneFragment); 

mFragmentList.add(twoFragment); 

mFragmentList.add(threeFragment); 

mFragmentList.add(fouthFragmen);

   

ViewPager的监听事件--滑动ViewPager的时候触发修改文本的操作

 mFragmentAdapter = new FragmentAdapter(this.getSupportFragmentManager(), mFragmentList);        vp.setOffscreenPageLimit(4);//ViewPager的缓存为4帧        vp.setAdapter(mFragmentAdapter);        vp.setCurrentItem(0);//初始设置ViewPager选中第一帧        item_weixin.setTextColor(Color.parseColor("#66CDAA"));        //ViewPager的监听事件        vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {            }            @Override            public void onPageSelected(int position) {                /*此方法在页面被选中时调用*/                title.setText(titles[position]);                changeTextColor(position);            }            @Override            public void onPageScrollStateChanged(int state) {                /*此方法是在状态改变的时候调用,其中arg0这个参数有三种状态(0,1,2)。                arg0 ==1的时辰默示正在滑动,                arg0==2的时辰默示滑动完毕了,                arg0==0的时辰默示什么都没做。*/            }        });

点击底部Text 动态修改ViewPager的内容


 /**点击底部Text 动态修改ViewPager的内容,底部是采用4个textView,当然也可以使用RadioButton,*/    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.item_weixin:                vp.setCurrentItem(0, true);                break;            case R.id.item_tongxunlu:                vp.setCurrentItem(1, true);                break;            case R.id.item_faxian:                vp.setCurrentItem(2, true);                break;            case R.id.item_me:                vp.setCurrentItem(3, true);                break;        }    }


FragmentAdapter


 public class FragmentAdapter extends FragmentPagerAdapter {        List fragmentList = new ArrayList();        public FragmentAdapter(FragmentManager fm,List fragmentList) {            super(fm);            this.fragmentList = fragmentList;        }        @Override        public Fragment getItem(int position) {            return fragmentList.get(position);        }        @Override        public int getCount() {            return fragmentList.size();        }    }

       源码下载


更多相关文章

  1. 修改设置Android(安卓)Preference相关样式
  2. Android学习之SharedPreferences
  3. Android(安卓)上的代码阅读器 CoderBrowserHD 修改支持 go 语言
  4. Android(安卓)Studio 3.3.X 导入项目的正确姿势
  5. android 浏览器全屏显示
  6. 命令行修改Android系统时间
  7. Android(安卓)list列表滑动显示隐藏toolbar(ListView)
  8. 修改android 开机动画
  9. 同步安卓源码错误:error: Cannot fetch CyanogenMod/android exte

随机推荐

  1. android手机通过串口蓝牙透传模块与AVR单
  2. Android防止内存溢出浅析
  3. android init进程说明
  4. android 桌面程序 滑动抽屉 SlidingDraw,
  5. Android作业:一个3D相册源码
  6. android实现蓝牙耳机的连接及列表的管理
  7. 我的Android重构之旅:框架篇
  8. Ubuntu上搭建Android编译环境(1)
  9. Android程序结构
  10. Android:SNS客户端开发四:数据库操作(二)