与PagerAdapter结合使用:
ViewPager和PageAdapter结合使用时,首先得创建一个Adapter继承PagerAdapter,并重写4个方法,这4个方法是比需要重写的:
instantiateItem(ViewGroup, int):将View条目添加到ViewPager中
destroyItem(ViewGroup, int, Object):移除View条目
getCount():得到需要添加到ViewPager中的View条目数
isViewFromObject(View, Object):判断view是否与Object相关联;
具体步骤:
1.初始化ViewPager、PagerAdapter;
2.在PagerAdapter中添加View;
3.给ViewPager设置PagerAdapter;
例:实现图片可以左右滑动效果:
xml布局代码:
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Java代码中:
初始化ViewPager并设置PagerAdapter:
viewPager=(ViewPager) findViewById(R.id.viewPager);
adapter=new MyPagerAdapter();
viewPager.setAdapter(adapter);
创建PagerAdapter:
/*创建MyPagerAdapter 继承PagerAdapter*/
class
MyPagerAdapter extends PagerAdapter{
/*得到Viewpager中View的总条目数*/
@Override
public int
getCount() {
return list.size();
}
/*在Viewpager中添加View*/
@Override
public Object
instantiateItem(ViewGroup container, int position) {
container.addView(list.get(position));
return list.get(position);
}
/*判断view是否与object关联*/
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
/*在ViewPager中移除当前View*/
@Override
public void
destroyItem(ViewGroup container, int position, Object object) {
container.removeView(list.get(position));
}
}
添加数据源list:
private List<ImageView> list;
private int[] imageId=new int[]{R.drawable.txt_theme12,R.drawable.txt_theme14,
R.drawable.txt_theme17,R.drawable.txt_theme26,R.drawable.txt_theme27};
list=new ArrayList<ImageView>();
ImageView imageView=null;
for(int i=0;i<imageId.length;i++){
imageView=new ImageView(this);
imageView.setImageResource(imageId[i]);
list.add(imageView);
}