Android PagerAdapter的使用方法_安卓实现左右滑动指引效果
2014-09-23 15:27:39 By: shinyuu
PagerAdapter简介
PagerAdapter是android.support.v4包中的类、它的子类有FragmentPagerAdapter, FragmentStatePagerAdapter
这两个adapter都是Fragment的适配器、用于实现Fragment的滑动效果
这两个adapter的使用和区别这次就先不介绍了、等下次有时间再做详细的介绍
PagerAdapter主要是viewpager的适配器、而viewPager则也是在android.support.v4扩展包中新添加的一个强大的控件
可以实现控件的滑动效果、比如咱们在软件中常见的广告栏的滑动效果、用viewPager就可以实现
今天主要介绍如何使用viewPagr并重写PagerAdapter实现常见广告栏的滑动效果
PagerAdapter用法简介
首先、如果继承pageradapter、至少必须重写下面的四个方法 1 instantiateItem(ViewGroup, int)
2. destroyItem(ViewGroup, int, Object)
3. getCount()
4. isViewFromObject(View, Object)
下面我们以代码的形式、说明这四个方法的含义以及如何使用
// 适配器 //循环设置 private class MyPagerAdapter extends PagerAdapter { public void finishUpdate(View arg0) { } public void notifyDataSetChanged() { super.notifyDataSetChanged(); } // 获取要滑动的控件的数量,在这里我们以滑动的广告栏为例 //那么这里就应该是展示的广告图片的ImageView数量 public int getCount() { return mListViews.size(); } // 当要显示的图片可以进行缓存的时候 //会调用这个方法进行显示图片的初始化 //我们将要显示的ImageView加入到ViewGroup中 //然后作为返回值返回即可 public Object instantiateItem(View v, int i) { ((ViewPager) v).addView(mListViews.get(i)); return mListViews.get(i); } //来判断显示的是否是同一张图片,将两个参数相比较返回即可 public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == (arg1); } public void restoreState(Parcelable arg0, ClassLoader arg1) { } public Parcelable saveState() { return null; } public void startUpdate(View arg0) { } // PagerAdapter只缓存三张要显示的图片 //如果滑动的图片超出了缓存的范围,就会调用这个方法,将图片销毁 public void destroyItem(View view, int position, Object arg2) { ((ViewPager) view).removeView(mListViews.get(position)); } }
实现了这四个方法、就可以实现滑动的效果了
那么夸大滑动之后要怎么捕获这个图片改变的事件呢、用以下方法
ViewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { Toast.makeText(mActivity, "选择:" + arg0, Toast.LENGTH_SHORT).show(); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } });
若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力
想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)
或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)
如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教
为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)
感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛