ViewPager切换View实例

1.在项目中添加V4包

引用v4包中的ViewPager控件。
或者添加android.support.v4.view.ViewPager

2.在activity_main.xml布局中添加ViewPager:

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

3.创建适配器MyViewPagerAdapter

public class MyViewPagerAdapter extends PagerAdapter {

    private List<View> mListViews;
    public MyViewPagerAdapter(List<View> mListViews) {
        this.mListViews = mListViews;//构造方法,参数是我们的页卡,这样比较方便。
    }
    //直接继承PagerAdapter,至少必须重写下面的四个方法,否则会报错
    @Override
    public void destroyItem(ViewGroup container, int position, Object object)  {
        container.removeView(mListViews.get(position));//删除页卡
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position){
        //这个方法用来实例化页卡
        container.addView(mListViews.get(position), 0);//添加页卡
        return mListViews.get(position);
    }
    @Override
    public int getCount() {
        return  mListViews.size();//返回页卡的数量
    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        return arg0==arg1;//官方提示这样写
    }


}

4.在MainActivity调用

public class MainActivity extends AppCompatActivity {

    private View view1;
    private View view2;
    private View view3;
    private List<View> viewList;
    private ViewPager viewPager;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewPager = (ViewPager) findViewById(R.id.pager);
        initPager();

    }

    private void initPager() {
        
       LayoutInflater lf = getLayoutInflater().from(this);

        view1 = lf.inflate(R.layout.activity_one, null);
        view2 = lf.inflate(R.layout.activity_two, null);
        view3 = lf.inflate(R.layout.activity_three, null);

        viewList = new ArrayList<View>();// 将要分页显示的View装入数组中
        viewList.add(view1);
        viewList.add(view2);
        viewList.add(view3);

        viewPager.setAdapter(new MyViewPagerAdapter(viewList));


    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,593评论 25 708
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,569评论 2 45
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,554评论 0 17
  • 暮云秋影蘸潇湘 风荡漾 枝头金叶微有响 暮云秋影蘸潇湘 水波浪 相邀堤岸轻吟唱 暮云秋影蘸潇湘 ...
    南天九茴阅读 218评论 0 1
  • 昨天听了三场讲座,虽然主题不一样,所属范畴不一样,但是,通过三位老师的分享,让我重新审视了所谓的”干货“。 我们是...
    露与安宸阅读 311评论 0 0