PagerAdapter滑动页面,onpagechangelistener监听滑动
2015-11-01 11:58
603 查看
1. PageAdapter是一个抽象类,直接继承于Object,导入android.support.v4.view.PagerAdapter。
2个抽象方法:
抽象方法1:
这个抽象方法判断是否有对象参数界面。
写法:
抽象方法2:
这个抽象方法是获取当前界面数。
写法:
2个重写的方法:
重写方法1:
写法:
重写方法2:
当缓冲数量超过规定的缓冲页面数,就会调用此方法,删除特定缓冲页面。
写法:
2. 如何使用PageAdapter
a. 在工程layout里创建XML文件,并添加:
b. 在此layout里创建要显示的页面;
列:a.xml , b.xml , c.xml
c. 创建 LayoutInflater 对象和ArrayList<View>
对象;
d. 创建 PagerAdapter 的匿名内部类:
e.最后调用 setAdapter 方法:
3. 使用 onpagechangelistener 监听滑动:
截图:
2个抽象方法:
抽象方法1:
public abstract boolean isViewFromObject(android.view.View arg0, java.lang.Object arg1);
这个抽象方法判断是否有对象参数界面。
写法:
public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; }这样写就可以了,用以判断显示时候为同张照片。
抽象方法2:
public abstract int getCount();
这个抽象方法是获取当前界面数。
写法:
public int getCount() { return views.size(); }
2个重写的方法:
重写方法1:
public java.lang.Object instantiateItem(android.view.View container, int position);这方法用以缓冲下一张显示的图片。
写法:
public Object instantiateItem(View container, int position) { ((ViewPager) container).addView(views.get(position)); return views.get(position); }
重写方法2:
public void destroyItem(android.view.ViewGroup container, int position, java.lang.Object object);
当缓冲数量超过规定的缓冲页面数,就会调用此方法,删除特定缓冲页面。
写法:
public void destroyItem(View container, int position, Object object) { ((ViewPager) container).removeView(views.get(position)); }
2. 如何使用PageAdapter
a. 在工程layout里创建XML文件,并添加:
<android.support.v4.view.ViewPager android:id="@+id/tabpager" android:layout_width="match_parent" android:layout_height="match_parent" />
b. 在此layout里创建要显示的页面;
列:a.xml , b.xml , c.xml
c. 创建 LayoutInflater 对象和ArrayList<View>
对象;
LayoutInflater mLi = LayoutInflater.from(this); View view0 = mLi.inflate(R.layout.a, null); View view1 = mLi.inflate(R.layout.b, null); View view2 = mLi.inflate(R.layout.c, null); final ArrayList<View> views = new ArrayList<View>(); views.add(view0); views.add(view1); views.add(view2);
d. 创建 PagerAdapter 的匿名内部类:
PagerAdapter mPagerAdapter = new PagerAdapter() { @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public int getCount() { return views.size(); } public void destroyItem(View container, int position, Object object) { ((ViewPager) container).removeView(views.get(position)); } @Override public Object instantiateItem(View container, int position) { ((ViewPager) container).addView(views.get(position)); return views.get(position); } };
e.最后调用 setAdapter 方法:
tabpager.setAdapter(mPagerAdapter);
3. 使用 onpagechangelistener 监听滑动:
tabpager.setOnPageChangeListener(new OnPageChangeListener() { //此方法是在状态改变的时候调用,其中arg0这个参数有三种状态(0,1,2)。 //arg0 ==1的时辰默示正在滑动,arg0==2的时辰默示滑动完毕了,arg0==0的时辰默示什么都没做。 //当页面开始滑动的时候,三种状态的变化顺序为(1,2,0) public void onPageScrollStateChanged(int arg0) { } //此方法里有3个参数</span></span> //当你滑动时一直调用这个方法直到停止滑到 //arg0:表示现在的页面; arg1:表示当前页面偏移百分比; arg2:表示当前页面偏移的像素; public void onPageScrolled(int arg0, float arg1, int arg2) { } //此方法里的 arg0 是表示显示的第几页,当滑到第N页,就会调用此方法,arg0=N; public void onPageSelected(int arg0) { switch (arg0) { case 0: break; case 1: break; case 2: break; default: break; } } });
截图:
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories