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

来源:互联网 发布:2016网络播放器软件 编辑:程序博客网 时间:2024/06/05 06:08

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改变,标签颜色改变








2 0
原创粉丝点击