您的位置:首页 > 移动开发 > Android开发

Android基础:翻页控件Viewpager的使用方法,viewpager+fragment混合使用

2015-12-10 13:42 537 查看
viewpager的 使用分以下4步:

1, 在xml文件中添加:

<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />


2,初始化控件并设置viewpager适配器:
mViewPager = (ViewPager) findViewById(R.id.viewPager);
mViewPager.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager(), mFragmentList));


3,设置启动时首页:
mViewPager.setCurrentItem(0);


4,设置viewpager的滑动监听事件:

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();
}
}


viewpager滑动监听 的事件代码如下:
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);


至于fragment代码,在博主的上一篇博客里已经贴出来了,有需要的可以看下。。。

很简单的一个demo,在此基础上掌握了viewpager的基本用法,可以很灵活的去设置各种特效,demo运行效果如下:

注:所涉及到的fragment导入的均是v4包下的,而且MAinActivity继承自fragmentActivity



右滑时fragment改变,标签颜色改变

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: