美文网首页AndroidAndroid开发进阶Android知识
ViewPager详解(一)简单介绍和使用

ViewPager详解(一)简单介绍和使用

作者: 笑说余生 | 来源:发表于2016-10-02 21:11 被阅读9513次

一、什么是ViewPager?

1.1 谷歌官方解释

introduction

1.2 大致意思

  • 布局管理器允许左右翻转带数据的页面,你想要显示的视图可以通过实现PagerAdapter来显示。这个类其实是在早期设计和开发的,它的API在后面的更新之中可能会被改变,当它们在新版本之中编译的时候可能还会改变源码。

  • ViewPager经常用来连接Fragment,它很方便管理每个页面的生命周期,使用ViewPager管理Fragment是标准的适配器实现。最常用的实现一般有FragmentPagerAdapter和FragmentStatePagerAdapter。

  • FragmentPagerAdapter和FragmentStatePagerAdapter是ViewPager和Fragment一起使用时才会用到,后面会详细介绍,这里就不介绍了。

1.3 介绍总结

  • ViewPager是v4包中的一个类。
  • ViewPager继承自ViewGroup,其实是一个容器。
  • ViewPager类似于ListView,也有自己的适配器,里面用来填充数据页面。
  • ViewPager一般和Fragment一起使用,它更方面的管理页面中Fragment的生命周期。

二、ViewPager的简单使用

布局文件中申明控件

  • 由于ViewPager是一个类似ListView的容器,一般使用单标签

       <!--填充整个页面的ViewPager-->
       <android.support.v4.view.ViewPager
          android:id="@+id/viewpager"
          android:layout_width="match_parent"
          android:layout_height="match_parent"/>
    

代码中设置显示数据

  • 获取控件对象

      ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
    
  • 自定义类继承PagerAdapter填充页面和数据

    • int getCount():返回显示多少个页面

    • boolean isViewFromObject(View view, Object object):判断初始化返回的Object是不是一个View对象

    • Object instantiateItem(ViewGroup container, int position):初始化显示的条目对象

    • void destroyItem(ViewGroup container, int position, Object object):销毁条目对象

        /**
         * 自定义类实现PagerAdapter,填充显示数据
         */
        class MyAdapter extends PagerAdapter {
      
            // 显示多少个页面
            @Override
            public int getCount() {
                return 5;
            }
      
            @Override
            public boolean isViewFromObject(View view, Object object) {
                return view == object;
            }
      
            // 初始化显示的条目对象
            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                // return super.instantiateItem(container, position);
                // 准备显示的数据,一个简单的TextView
                TextView tv = new TextView(MainActivity.this);
                tv.setGravity(Gravity.CENTER);
                tv.setTextSize(20);
                tv.setText("我是天才" + position + "号");
      
                // 添加到ViewPager容器
                container.addView(tv);
      
                // 返回填充的View对象
                return tv;
            }
      
            // 销毁条目对象
            @Override
            public void destroyItem(ViewGroup container, int position, Object object) {
                // super.destroyItem(container, position, object);
                container.removeView((View) object);
            }
        }
      
  • 设置适配器

    viewPager.setAdapter(new MyAdapter());
    

效果图

Demo1效果图

个人主页
Demo下载地址

以上纯属于个人平时工作和学习的一些总结分享,如果有什么错误欢迎随时指出,大家可以讨论一起进步。

相关文章

  • ViewPager详解(一)简单介绍和使用

    一、什么是ViewPager? 1.1 谷歌官方解释 1.2 大致意思 布局管理器允许左右翻转带数据的页面,你想要...

  • ViewPager结合Fragment、tabLayout实现可

    参考:ViewPager 全面剖析及使用详解,作者:西瓜太郎123使用TabLayout、ViewPager和Fr...

  • Android ViewPager 使用总结

    ViewPager 简单使用 ViewPager + PagerAdapter简单的 View 可以使用这个实现,...

  • PageView

    1、ViewPager 详解(一)---基本入门 2、ViewPager 详解(二)---详解四大函数 3、Vie...

  • ViewPager懒加载极致优化

    01.ViewPager简单介绍 ViewPager使用一个键对象来关联每一页,而不是管理View。这个键用于追踪...

  • ViewPager懒加载极致优化

    目录介绍 01.ViewPager简单介绍 02.ViewPager弊端分析 03.ViewPager预加载 04...

  • ViewPager简单介绍

    1.ViewPager就是一个简单的页面切换组件,我们可以往里面填充多个View,然后我们可以左 右滑动,从而切换...

  • iOS 点击事件分发机制

    本文将简单介绍 iOS 的点击事件( TouchEvents )分发机制和一些使用场景。详解请看参考部分。 从以下...

  • ViewPager详解

    一、ViewPager介绍 ViewPager使用一个键对象来关联每一页,而不是管理View。这个键用于追踪和唯一...

  • ViewPager2和TabLayout的使用

    介绍 在使用之前,一定要先看一下ViewPager2的介绍 迁移至 ViewPager2 | AndroidDev...

网友评论

本文标题:ViewPager详解(一)简单介绍和使用

本文链接:https://www.haomeiwen.com/subject/ykydyttx.html