ViewPager基本用法

来源:互联网 发布:网络教育 学籍 编辑:程序博客网 时间:2024/06/14 20:32

ViewPager是由v4包提供的一个组件,可实现像桌面那样左右滑动显示多页内容的效果,我们经常看到的一些app打开时的导航页面就可以用ViewPager实现。

要使用ViewPager,得先将supportv4包导入项目,这一步就不讲了。
下面看看如何使用:

首先新建一个项目,在activity的布局文件里加入ViewPager组件:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"><android.support.v4.view.ViewPager    android:id="@+id/viewpager"    android:layout_width="match_parent"    android:layout_height="0dp"    android:layout_weight="1"></android.support.v4.view.ViewPager></LinearLayout>

这样ViewPager就填充了整个页面。

如果我们想实现三个页面左右滑动显示的效果,先实现三个页面的布局:layout1.xml,layout2.xml,layout3.xml。这些内容自己随便写。

然后就可以在activity中使用了:

定义三个view,作为三个layout加载后的内容:

    private View view1;    private View view2;    private View view3;    private List<View> viewList;

onCreate()中初始化,并将他们添加到List中:

        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>();        viewList.add(view1);        viewList.add(view2);        viewList.add(view3);

ViewPager的findViewById()之类的代码就不用贴出了,定义好了ViewPager之后,我们需要给ViewPager设置适配器,ViewPager有自己特有的适配器PagerAdapter, 我们可以创建一个它的对象,并且需要重写它的四个方法:

  1. instantiateItem(ViewGroup, int) //将当前视图添加到视图容器中并返回当前View
  2. destroyItem(ViewGroup, int, Object) //从视图容器中移除指定项
  3. getCount() //可滑动的页面的数量
  4. isViewFromObject(View, Object) //返回值是布尔值,一般直接用官方写法: return View==Object即可。
        PagerAdapter adapter = new PagerAdapter() {            @Override            public int getCount() {                return viewList.size();            }            @Override            public boolean isViewFromObject(View view, Object object) {                return view == object;            }            @Override            public void destroyItem(ViewGroup container, int position, Object object) {                container.removeView(viewList.get(position));            }            @Override            public Object instantiateItem(ViewGroup container, int position) {                container.addView(viewList.get(position));                return viewList.get(position);            }        };

然后别忘了把定义好的适配器用到ViewPager上:

        viewPager.setAdapter(adapter);

这样就算完成了最简单的使用,三个页面可以依次滑动显示。

原创粉丝点击