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的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+