ViewPager(分页功能的scrollerview)

简介:让用户左右切换当前的view

第一步:设置PagerAdapter适配器类给它提供数据

第二步:设置addOnPageChangeListener 来提供滚动监听

第三步:设置ViewPager.PageTransformer来定于翻页动画(关键就是重写transformPage方法)

adapter:

PagerAdapter:基类适配器是一个通用的ViewPager适配器
FragmentPagerAdapter:(适用于页面比较少的情况)
FragmentStatePagerAdapter:更专注于每一页是Fragment的情况(适用于页面比较多的情况)
// 下面抄自原文的封装adapter
public class AdapterViewpager extends PagerAdapter {
    private List mViewList;

    public AdapterViewpager(List mViewList) {
        this.mViewList = mViewList;
    }

    @Override
    public int getCount() {//必须实现
        return mViewList.size();
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {//必须实现
        return view == object;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {//必须实现,实例化
        container.addView(mViewList.get(position));
        return mViewList.get(position);
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {//必须实现,销毁
        container.removeView(mViewList.get(position));
    }
}
监听器
viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            // position :当前页面,及你点击滑动的页面;positionOffset:当前页面偏移的百分比;positionOffsetPixels:当前页面偏移的像素位置
            }

            @Override
            public void onPageSelected(int position) {
            // 是当前选中的页面的Position 
            }

            @Override
            public void onPageScrollStateChanged(int state) {
             //state ==1的时表示正在滑动,state ==2的时表示滑动完毕了,state ==0的时表示什么都没做
            }
        });
    }

原文地址,详细

你可能感兴趣的:(ViewPager(分页功能的scrollerview))