欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android开发中ViewPager实现多页面切换效果

程序员文章站 2024-03-31 16:57:52
viewpager用于实现多页面的切换效果,该类存在于google的兼容包里面,所以在引用时记得在builldpath中加入“android-support-v4.jar”...

viewpager用于实现多页面的切换效果,该类存在于google的兼容包里面,所以在引用时记得在builldpath中加入“android-support-v4.jar”

首先必须知道:要使用viewpager,必须要使用pageradapter为其提供数据,也就必须实现下面四个方法:

1, getcount():viewpager需要显示的页面个数

2,isviewfromobject(view view, object object):view 是某个位置的页面,object是 instantiateitem 方法返回的。在这个方法需要判断这页面与object对象是

否是同一个对象。

3,instantiateitem(viewgroup container, int position):生成对应位置的页面,container 就是显示页面的容器,position 就是对应的页面的序号

4,destroyitem(viewgroup container, int position, object object):将指定页面销毁

其实现代码”如下”:

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,并覆写其四个方法

public class mypageradapter extends pageradapter {
private context mcontext;
private int[] mresid;
public mypageradapter(context context, int[] resid) {
this.mcontext = context;
this.mresid = resid;
}
//设置内部pager页面的数量
@override
public int getcount() {
return mresid.length;
}
@override
public boolean isviewfromobject(view view, object object) {
//判断页面与object是否是同一个对象
return view == object;
}
//必须重新覆写instaniateitem()和destroyitem()二个方法才能进行展示
@override
public object instantiateitem(viewgroup container, int position) {
view view = view.inflate(mcontext, r.layout.item, null);
view iv_item = view.findviewbyid(r.id.iv_item);
iv_item.setbackgroundresource(mresid[position]);
//必须将填充出来的view添加到viewgroup中去,其container表示当前页面的容器
container.addview(view);
return view;
}
//不使用的时候,将其销毁
@override
public void destroyitem(viewgroup container, int position, object object) {
//父类实现的方法是抛异常(源码)
// super.destroyitem(container, position, object);
container.removeview((view) object);
}
}

3,activity中实现其逻辑

public class mainactivity extends activity {
private viewpager mup;
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
initeview();
initdata();
}
private void initdata() {
int[] resid = new int[]{r.drawable.shi, r.drawable.ni, r.drawable.haha};
//给viewpager设置内容
mypageradapter adapter = new mypageradapter(getapplicationcontext(), resid);
mup.setadapter(adapter);
}
private void initeview() {
mup = (viewpager) findviewbyid(r.id.up);
}
}

以上所述是小编给大家介绍的android开发中viewpager实现多页面切换效果,希望对大家有所帮助