Android开发中ViewPager实现多页面切换效果
ViewPager用于实现多页面的切换效果,该类存在于Google的兼容包里面,所以在引用时记得在BuilldPath中加入“Android-support-v4.jar”
首先必须知道:要使用ViewPager,必须要使用PagerAdapter为其提供数据,也就必须实现下面四个方法:
1,getCount():ViewPager需要显示的页面个数
2,isViewFromObject(Viewview,Objectobject):view是某个位置的页面,Object是instantiateItem方法返回的。在这个方法需要判断这页面与Object对象是
否是同一个对象。
3,instantiateItem(ViewGroupContainer,intposition):生成对应位置的页面,container就是显示页面的容器,position就是对应的页面的序号
4,destroyItem(ViewGroupcontainer,intposition,Objectobject):将指定页面销毁
其实现代码”如下”:
1,直接在布局文件中引入ViewPager
注意:必须要导入其依赖包android.support.v4
<android.support.v4.view.ViewPager android:id="@+id/up" android:layout_width="wrap_content" android:layout_height="wrap_content"> </android.support.v4.view.ViewPager>
2,自定义一个适配器继承于PagerAdapter,并覆写其四个方法
publicclassMyPagerAdapterextendsPagerAdapter{ privateContextmContext; privateint[]mResId; publicMyPagerAdapter(Contextcontext,int[]resId){ this.mContext=context; this.mResId=resId; } //设置内部pager页面的数量 @Override publicintgetCount(){ returnmResId.length; } @Override publicbooleanisViewFromObject(Viewview,Objectobject){ //判断页面与object是否是同一个对象 returnview==object; } //必须重新覆写instaniateItem()和destroyItem()二个方法才能进行展示 @Override publicObjectinstantiateItem(ViewGroupcontainer,intposition){ Viewview=View.inflate(mContext,R.layout.item,null); Viewiv_item=view.findViewById(R.id.iv_item); iv_item.setBackgroundResource(mResId[position]); //必须将填充出来的view添加到ViewGroup中去,其container表示当前页面的容器 container.addView(view); returnview; } //不使用的时候,将其销毁 @Override publicvoiddestroyItem(ViewGroupcontainer,intposition,Objectobject){ //父类实现的方法是抛异常(源码) //super.destroyItem(container,position,object); container.removeView((View)object); } }
3,activity中实现其逻辑
publicclassMainActivityextendsActivity{ privateViewPagermUp; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initeView(); initData(); } privatevoidinitData(){ int[]resId=newint[]{R.drawable.shi,R.drawable.ni,R.drawable.haha}; //给ViewPager设置内容 MyPagerAdapteradapter=newMyPagerAdapter(getApplicationContext(),resId); mUp.setAdapter(adapter); } privatevoidiniteView(){ mUp=(ViewPager)findViewById(R.id.up); } }
以上所述是小编给大家介绍的Android开发中ViewPager实现多页面切换效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!