最先接触到ViewPager是因为需要给一个看书类APP做一个滑动的效果,有人推荐了ViewPager。
为了方便3.0以下的系统也可以使用ViewPager,在Android的v4包里,也提供了ViewPager的接口。
在这主要介绍一下,怎么能最快的上手使用ViewPager。主要分为三步
1,在布局文件中加入ViewPager
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" >
2,ViewPager与LisstView类似,我们也需要一个适配器,他就是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,你必须至少覆盖以下方法:
3, 添加需要滑动的页面
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);
MyViewPagerAdapter pagerAdapter = new MyViewPagerAdapter (viewList);
viewPager.setAdapter(pagerAdapter);
通过以上几步,一个简单的ViewPager就做成了。