zoukankan      html  css  js  c++  java
  • 使用ViewPager实现页面之间的跳转

    Activity代码

    public class MainActivity extends AppCompatActivity {
        private List<View> list;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            list= new ArrayList<View>();
            /**
             * 通过view对象作为viewpager的数据源
             */
            View view1=View.inflate(this,R.layout.view1,null);
            View view2=View.inflate(this,R.layout.view2,null);
            View view3=View.inflate(this,R.layout.view3,null);
            View view4=View.inflate(this,R.layout.view4,null);
            list.add(view1);
            list.add(view2);
            list.add(view3);
            list.add(view4);
            //创建pageadapter
            Mypageadapter mypageadapter= new Mypageadapter(list);
            //初始化viewpager
            ViewPager pager= (ViewPager)findViewById(R.id.viewpager);
            //加载适配器
            pager.setAdapter(mypageadapter);
    
        }
    }

     总体的思路是创建一个View的list集合,通过inflate方法将页面转化为view,初始化list并添加view为元素,初始化viewpager并加载适配器

    pageradapter代码

    public class Mypageadapter extends PagerAdapter {
        private List<View> viewList;
        public  Mypageadapter(List<View>viewList){
            this.viewList=viewList;
        }
        //返回页卡的数量
        @Override
        public int getCount() {
            return viewList.size();
        }
        //page是否来自于对象
        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view==object;
        }
        /*
        * 实例化一个页卡
        * */
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            container.addView(viewList.get(position));
            return viewList.get(position);
        }
        //销毁一个页卡
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView(viewList.get(position));
    
        }
    }

     继承pageradapter方法,创建一个有参的构造方法,在Activity中调用时将LIstVIew传递进来

    除了实现的两个方法之外还要实现一个初始化页卡的方法和另一个销毁页卡的方法

  • 相关阅读:
    linux下查看当前登陆的用户数目
    uboot能ping通本机无法ping通本机上搭建的虚拟机
    一个时序图描述从用户在浏览器地址栏输入url并按回车,到浏览器显示相关内容的各个过程
    3*0.1 == 0.3 将会返回什么?true 还是 false?
    Floating Point Math
    浮点数在计算机中是如何表示的
    浮点数在计算机中是如何表示的
    Java并发编程:volatile关键字解析
    join的源码
    i++ 是线程安全的吗
  • 原文地址:https://www.cnblogs.com/edwardru/p/5861388.html
Copyright © 2011-2022 走看看