• 使用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传递进来

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

  • 相关阅读:
    洛谷 P5564: [Celeste-B]Say Goodbye
    LOJ 3185: 「CEOI2018」斐波那契表示法
    Codeforces 749E: Inversions After Shuffle
    C#之在treeview中鼠标点击的所选的节点触发事件
    C#中选中指定文件并读取类似ini文件的内容
    免费的EmBitz可替代Keil MDK开发STM32、NXP项目
    C#创建子线程,子线程使用委托更新控件
    C#调用C++生成的动态链接库DLL
    C#之菜单控件、主窗体打开子窗体、GroupBox控件使用
    在Linux下用CANopenSocket协议模拟CAN总线通讯
  • 原文地址:https://www.cnblogs.com/edwardru/p/5861388.html
Copyright © 2020-2023  润新知