viewpager的 使用分以下4步:
1, 在xml文件中添加:
<android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="wrap_content" android:layout_height="wrap_content" />
mViewPager = (ViewPager) findViewById(R.id.viewPager); mViewPager.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager(), mFragmentList));
mViewPager.setCurrentItem(0);
mViewPager.addOnPageChangeListener(MyPageChangeListener);
我做的是viewpager加fragment,viewpager适配器的代码如下:
MyViewPagerAdapter.class
public class MyViewPagerAdapter extends FragmentPagerAdapter { private List<Fragment> mFragmentList = new ArrayList<>(); public MyViewPagerAdapter(FragmentManager fm,List<Fragment> mFragmentList) { super(fm); this.mFragmentList = mFragmentList; } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } }
private ViewPager.OnPageChangeListener MyPageChangeListener = new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { mViewPager.setCurrentItem(position); //当前页的标签颜色改变 for (int i = 0;i < mViewList.size();i++){ if (i==position){ mViewList.get(i).setSelected(true); }else { mViewList.get(i).setSelected(false); } } } @Override public void onPageScrollStateChanged(int state) { } };
改变字体颜色用到了selector,文件如下:
yellow_text_selector.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:color="#ffff2d21"/> <item android:color="#020202"/> </selector>
MainActivity部分代码如下:
...... mOne = (TextView) findViewById(R.id.one); mTwo = (TextView) findViewById(R.id.two); mViewList.add(mOne); mViewList.add(mTwo); mViewList.get(0).setSelected(true); mFragmentList.add(firstFragment); mFragmentList.add(secondFragment); mViewPager = (ViewPager) findViewById(R.id.viewPager); mViewPager.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager(), mFragmentList)); mViewPager.setCurrentItem(0); mViewPager.addOnPageChangeListener(MyPageChangeListener);
很简单的一个demo,在此基础上掌握了viewpager的基本用法,可以很灵活的去设置各种特效,demo运行效果如下:
右滑时fragment改变,标签颜色改变