zoukankan      html  css  js  c++  java
  • Android之ViewPager组件实现左右滑动View

    • 什么是ViewPager

      VIewPager是安卓3.0之后提供的新特性,继承自ViewGroup,专门用来实现左右滑动切换View的效果。如果想向下兼容需要

    android-support-v4.jar这个包的支持。

      ViewPager与ListView的常用控件的实现方式差不多,步骤如下:

      步骤:声明实例化控件->设置数据源->配置适配器->绑定适配器->(添加监听)

      

    • 声明控件

      使用该类时,需要在BuildPath中加入“android-support-v4.jar”

         <android.support.v4.view.ViewPager
             android:id="@+id/viewpager"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent" />
    • 数据源

      数据源是一个存放着View对象的集合,实现方式有2种:

    1、通过XML配置文件,把对应的页面设置好,然后把xml配置文件转换成view对象并载入这个集合里

    2、通过代码动态生成,把生成的View对象载入到集合里。

    • 适配器

      需要重写一个类继承PagerAdapter类,并重写相对应的方法

    @Override
    public int getCount() {//返回页面数量
        return 0;
    }
    
    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {//判断是否是view对象
        return false;
    }
    
    @Override
    public Object instantiateItem(View container, int position) {//实例化一个页面
        return super.instantiateItem(container, position);
    }
    
    @Override
    public void destroyItem(View container, int position, Object object) {//销毁一个页面
        super.destroyItem(container, position, object);
    }
    • 事件监听

      ViewPager在处理滑动事件时需要用到OnPageChangeListener,这个接口需要实现三个方法

    @Override    //当页面跳转完后调用,position为当前选中页面的position
    public void onPageSelected(int position) { 
      return position; } @Override //当页面在滑动时会调用此方法,arg0为当前页面,arg1为当前页面偏移百分比,arg2为当前页面偏移的像素位置
    public void onPageScrolled(int arg0, float arg1, int arg2) { 

    } @Override //状态改变时调用,有三种状态(0,1,2),0表示什么都没做,1表示正在滑动,2表示滑动完毕了
    public void onPageScrollStateChanged(int arg0) { }

     程序猿必读

  • 相关阅读:
    代码中引用res里的颜色、图片
    time.setToNow() 取当前时间,月份有误
    adb报错:The connection to adb is down, and a severe&nbs
    安卓下拉刷新、上拉加载数据显示
    4、安卓数据存储——sqlite
    3、安卓数据存储——缓存、内存管理
    2、安卓数据存储——本地文件
    1、安卓数据存储机制——sharedPreference
    一个异步任务接收两个url下载两个图片
    adb报错:The connection to adb is down, and a severe&nbs
  • 原文地址:https://www.cnblogs.com/longzhongren/p/6236996.html
Copyright © 2011-2022 走看看