android 基础 ---> ViewPager

来源:互联网 发布:惠斯通电桥测电阻数据 编辑:程序博客网 时间:2024/05/19 12:17

ViewPager的功能就是可以使视图滑动,就像Lanucher左右滑动那样,始终保持3个View在内存中,默认初始化下一个View:

使用方法:

1. 布局文件中加入

<android.support.v4.view.ViewPager              android:id="@+id/viewpager"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:layout_gravity="center" >  

2. 加载要显示的页卡

LayoutInflater lf = getLayoutInflater().from(this);          view1 = lf.inflate(R.layout.layout1, null);          view2 = lf.inflate(R.layout.layout2, null);          view3 = lf.inflate(R.layout.layout3, null);          viewList = new ArrayList<View>();// 将要分页显示的View装入数组中          viewList.add(view1);          viewList.add(view2);          viewList.add(view3);  

3. 重写适配器PagerAdapter

public class MyViewPagerAdapter extends PagerAdapter{          private List<View> mListViews;          public MyViewPagerAdapter(List<View> mListViews) {              this.mListViews = mListViews;//构造方法,参数是我们的页卡,这样比较方便。          }          @Override          public void destroyItem(ViewGroup container, int position, Object object)   {                 container.removeView(mListViews.get(position));//删除页卡          }          @Override          public Object instantiateItem(ViewGroup container, int position) {  //这个方法用来实例化页卡                      container.addView(mListViews.get(position), 0);//添加页卡               return mListViews.get(position);          }          @Override          public int getCount() {                       return  mListViews.size();//返回页卡的数量          }          @Override          public boolean isViewFromObject(View arg0, Object arg1) {                         return arg0==arg1;//官方提示这样写          }      }  

注意:

实现一个PagerAdapter,你必须至少覆盖以下方法:

  • instantiateItem(ViewGroup, int)
  • destroyItem(ViewGroup, int, Object)
  • getCount()
  • isViewFromObject(View, Object)

如果ViewPager与fragment结合使用,则需要适配器实现FragmentStatePagerAdapter

0 0