Android中通过ViewPager实现左右滑屏(下)
使用实例3
.代码片段1
if(imgUrls.size()>1){
position = position +200* imgUrls.size();
}
viewPager.setCurrentItem(position);
代码片段2
private class MyPagerAdapter extends PagerAdapter {
@Override
publicvoid destroyItem(View view,int i,Objectobject){
ViewPager viewPager =(ViewPager) view;
View view2 =(View)object;
viewPager.removeView(view2);
}
@Override
publicvoid finishUpdate(View arg0){
}
@Override
publicint getCount(){
if(imgUrls !=null){
if(imgUrls.size()>1){
returnInteger.MAX_VALUE;
}else{
return imgUrls.size();
}
}
return0;
}
@Override
publicObject instantiateItem(View view,int i){
i = i % imgUrls.size();
ViewPager viewPager =(ViewPager) view;
View view2 = getView(i, imgUrls, context);
viewPager.addView(view2);
return view2;
}
@Override
publicboolean isViewFromObject(View view,Objectobject){
return view ==object;
}
@Override
publicvoid restoreState(Parcelable arg0,ClassLoader arg1){
}
@Override
publicParcelable saveState(){
returnnull;
}
@Override
publicvoid startUpdate(View arg0){
}
}
代码片段3
publicView getView(int position,List<String> urls,Context context){
View view =null;
int size = urls.size();
position = position % size;
LayoutInflater inflater =LayoutInflater.from(context);
view = inflater.inflate(R.layout.page_item,null);
ImageUtil.setDrawable(view, urls.get(position));
return view;
}
如果我们在多个Activity之间进行左右滑动,那么可以采用如下的代码获得View,以实现在多个Activity之间进行左右滑动
privateView getView(String id,Class<?> clazz,Serializable data){
Intent intent =newIntent();
Bundle bundle =newBundle();
bundle.putSerializable("data",data);
intent.putExtras(bundle);
intent.setClass(this, clazz);
/*getLocalActivityManager是ActivityGroup的一个方法*/
return getLocalActivityManager().startActivity(id, intent).getDecorView();
}
结束!
huidaoli版权所有:转载请注明出处,谢谢合作!

浙公网安备 33010602011771号