您的位置:首页 > 移动开发 > Android开发

ANDROID PAGERADAPTER的使用方法_安卓实现左右滑动指引效果

2016-10-18 10:13 741 查看
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)

<iframe id="iframeu2248002_0" src="http://pos.baidu.com/ecjm?rdid=2248002&dc=2&di=u2248002&dri=0&dis=0&dai=2&ps=807x184&dcb=BAIDU_SSP_define&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1476756398074&ti=Android%20PagerAdapter%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95_%E5%AE%89%E5%8D%93%E5%AE%9E%E7%8E%B0%E5%B7%A6%E5%8F%B3%E6%BB%91%E5%8A%A8%E6%8C%87%E5%BC%95%E6%95%88%E6%9E%9C_DD%E5%8D%9A%E5%AE%A2&ari=2&dbv=2&drs=1&pcs=1349x579&pss=1349x839&cfv=0&cpl=41&chi=1&cce=true&cec=UTF-8&tlm=1476756398&rw=579&ltu=http%3A%2F%2Fdwtedx.com%2Fitshare_229.html&ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DvQ3Kzo9O_h0gVtIxBlwqG_FCaX6CqeBrO-6oFAlqMSIjPfsNk4p6Jwm1OMQwsH25%26wd%3D%26eqid%3Dbf0e1cd900026cb700000005580583a1&ecd=1&psr=1366x768&par=1366x728&pis=-1x-1&ccd=24&cja=true&cmi=67&col=zh-CN&cdo=-1&tcn=1476756398&qn=006ccee9c76314cc&tt=1476756398011.343.912.913" width="120" height="45" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="margin: 0px; padding: 0px; border-width: 0px; border-style: initial; outline: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit;font-size:undefined; line-height: inherit; font-family: inherit; word-wrap: break-word; vertical-align: bottom;"></iframe>

下面我们以代码的形式、说明这四个方法的含义以及如何使用
// 适配器 //循环设置
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) {
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: