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

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

  • 相关阅读:
    Vue 导出excel 自适应宽度
    .Net 5.0 项目数据库连接字符串
    .Net 5.0 从api下载文件到本地
    Oracle for 循环输出(游标提取)
    找到多个与名为“Home”的控制器匹配的类型
    让tomcat使用指定JDK
    .NetCore 3 单文件发布详解
    CentOS7 常用命令大全
    阿里云ECS CentOS 7.8 安装图形化桌面GNOME
    用命令禁用本地连接
  • 原文地址:https://www.cnblogs.com/edwardru/p/5861388.html
Copyright © 2011-2022 走看看