ViewPager的简单使用

使用之前我们先创建三个布局文件 (first_layout, second_ layout, third_layout)

在三个布局文件里面添加文字就ok了,主要用来区分三个页面。

1.ViewPager是一个组件

所以第一步就是在布局文件添加ViewPager组件

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

2.因为ViewPager是一个组件,所以在主程序中实例化ViewPager组件

ViewPager mViewPager = (ViewPager) findViewById(R.id.view_pager);

3.前面我们创建了三个布局文件,现在我们需要将这三个文件载入到LayoutInflater中

LayoutInflater inflater = getLayoutInflater();
View firstView = inflater.inflate(R.layout.first_layout, null);
View secondView = inflater.inflate(R.layout.second_layout, null);
View thirdView = inflater.inflate(R.layout.third_layout, null);

4.实例一个List<View>来存储三个view (firstView, secondView, thirdView)

List<View> mViewList = new ArrayList<>();
mViewList.add(firstView);
mViewList.add(secondView);
mViewList.add(thirdView);

5.ViewPager还需要配合PagerAdapter来使用,创建myPagerAdapter类

public class myPageAdapter extends PagerAdapter {

    private List<View> mViewList;

    public myPageAdapter(List<View> viewList) {
        mViewList = viewList;
    }

    @Override
    public int getCount() {
        return mViewList.size();
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        //super.destroyItem(container, position, object);
        container.removeView(mViewList.get(position));
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        //return super.instantiateItem(container, position);
        container.addView(mViewList.get(position));
        return mViewList.get(position);
    }
}

最后在主程序在实例myPagerAdapter类并传入mViewList集合,再设置Adapter适配器

myPageAdapter adapter = new myPageAdapter(mViewList);
mViewPager.setAdapter(adapter);

emmm.....

可以run了

猜你喜欢

转载自blog.csdn.net/zingfeng_sky/article/details/80370571