Android(安卓)ViewPager和Fragment实现仿微信导航界面及滑动效果
16lz
2021-01-26
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(); } }
源码下载
更多相关文章
- 修改设置Android(安卓)Preference相关样式
- Android学习之SharedPreferences
- Android(安卓)上的代码阅读器 CoderBrowserHD 修改支持 go 语言
- Android(安卓)Studio 3.3.X 导入项目的正确姿势
- android 浏览器全屏显示
- 命令行修改Android系统时间
- Android(安卓)list列表滑动显示隐藏toolbar(ListView)
- 修改android 开机动画
- 同步安卓源码错误:error: Cannot fetch CyanogenMod/android exte