ViewPager与PagerAdapter配合实现Tab效果

来源:互联网 发布:斗龙战士2玩具淘宝 编辑:程序博客网 时间:2024/06/05 03:00

编写布局文件:

<?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">    <include layout="@layout/top" />    <android.support.v4.view.ViewPager        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1"        android:id="@+id/viewPager"        />    <include layout="@layout/bottom"/></LinearLayout>

top.xml就一个TextView , bottom.xml中为四个LinearLayout,界面效果如下:


PagerAdapter的使用(mViews为承载了页面View的容器):

 pagerAdapter = new PagerAdapter() {           @Override           public Object instantiateItem(ViewGroup container, int position) {               View view = mViews.get(position);               container.addView(view);               return view;           }           @Override           public void destroyItem(ViewGroup container, int position, Object object) {               container.removeView(mViews.get(position));//  这个方法一定要删除继承父类方法的那一行代码           }           @Override           public int getCount() {               return mViews.size();           }           @Override           public boolean isViewFromObject(View view, Object object) {               return view == object;           }       };
通过ViewPager.setOnChangeListener实现ViewPager的页面滑动监听:

viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {            }            @Override            public void onPageSelected(int position) {                int currentItem = viewPager.getCurrentItem();                switch (currentItem){                    case 0://  ViewPager在第0页时                        break;                    case 1:                        //  ViewPager在第1页时                        break;                    case 2:               ........                        break;           }          }

下方图标的点击事件要另外实现,注意除了改变图标外,还要使用ViewPager.setCurrentItem()更新ViewPager当前页

笔记:创建PagerAdapter时实现的destroyItem()方法一定要删除默认的继承父类方法那行代码,不然会出现方法未实现错误。



0 0
原创粉丝点击