配置
<android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="fill_parent" android:layout_height="fill_parent" />
viewpager对应的layout
<LinearLayout android:id="@+id/ll_detail_overview" /> ...... </LinearLayout>
ViewPager的使用
ViewPager mPager = (ViewPager) findViewById(R.id.viewPager); MyPagerAdapter mPagerAdapter = new MyPagerAdapter(参数); mPager.setAdapter(mPagerAdapter);
mPager.setOnPageChangeListener(mOnPageChangeListener);
MyPagerAdapter继承PagerAdapter实现getCount()、isViewFromObject(View arg0, Object arg1)等方法,
MyPagerAdapter继承FragmentPagerAdapter实现getItem(int arg0)、getCount()等方法。
mPager.setCurrentItem(position);//设置当前页
mOnPageChangeListener里onPageSelected(int currentID)//得到当前页
遇到的情况
1,viewpager加载多个不同layout形式的页
页是用view显示的
//将要分页显示的View装入数组中 LayoutInflater mLi = LayoutInflater.from(this); View view1 = mLi.inflate(R.layout.view1, null); View view2 = mLi.inflate(R.layout.view2, null); View view3 = mLi.inflate(R.layout.view3, null); final ArrayList<View> views = new ArrayList<View>(); views.add(view1); views.add(view2); views.add(view3)
views用MyPagerAdapter(参数)的形式传递过去,进行处理。
页是fragment显示的
FragmentManager fm = getSupportFragmentManager(); mPagerAdapter = new MyPagerAdapter(fm); //MyPagerAdapter中的方法,获得相应fragment,每个fragment对应一个layout public Fragment getItem(int arg0) { Fragment fragment = null; switch (arg0) { case 0: fragment = new DetailFragment1(); break; case 1: fragment = new DetailFragment2(); break; } returen fragment; }
也可以像views的方法以一个list参数的形式传递过去。
2,viewpager加载一个layout形式的多页
待续。。。
viewpager能呈现多页滑动效果,试试哦!!