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

所属分类: 软件编程 / Android 阅读数: 52
收藏 0 赞 0 分享

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实现多页面切换效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

更多精彩内容其他人还在看

Android网络编程之获取网络上的Json数据实例

这篇文章主要介绍了Android网络编程之获取网络上的Json数据实例,本文用完整的代码实例讲解了在Android中读取网络中Json数据的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中的windowSoftInputMode属性详解

这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下
收藏 0 赞 0 分享

Android网络编程之UDP通信模型实例

这篇文章主要介绍了Android网络编程之UDP通信模型实例,本文给出了服务端代码和客户端代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中使用ListView实现漂亮的表格效果

这篇文章主要介绍了Android中使用ListView实现漂亮的表格效果,本文用详细的代码实例创建了一个股票行情表格,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中刷新界面的二种方法

这篇文章主要介绍了Android中刷新界面的二种方法,本文使用Handler、postInvalidate两种方法实现界面刷新,需要的朋友可以参考下
收藏 0 赞 0 分享

Android SDK三种更新失败及其解决方法

这篇文章主要介绍了Android SDK三种更新失败及其解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(一)

Android3.0(API level 11)开始,Android设备不再需要专门的菜单键。随着这种变化,Android app应该取消对传统6项菜单的依赖。取而代之的是提供anction bar来提供基本的用户功能
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(二)

这次将继续上一篇文章没有讲完的Menu的学习,上下文菜单(Context menu)和弹出菜单(Popup menu)
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(三)

今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习,需要的朋友可以参考下
收藏 0 赞 0 分享

Android显示网络图片实例

这篇文章主要介绍了Android显示网络图片的方法,以实例形式展示了Android程序显示网络图片的方法,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多