ViewPager和Fragment实现滑动标签页步骤以及方法总结
2016-07-14 00:19
411 查看
要实现左右滑动的标签页其实有很多种办法,比如最外层一个FrameLayout,里面重叠几个View监听滑动事件来控制具体的展示效果以及相应的处理,还有其他很多种方式,但是呢各个方法的运行效率以及编码速度就因人的水平而异了,好在谷歌给咱们懒癌症患者提供了这么一个ViewPager用来帮助你实现滑动标签页的功能。
ViewPager是Android v4包中的一个控件,可以用来实现左右滑动的标签页。大概来了解下这个ViewPager这个类。
1、怎么导入v4包
android studio:
有两种方式 在你的moudle或者project的buildgradle中的导入依赖的地方加上一行 compile ‘com.android.support:support-v4:23.2.1’(注意:23.2.1是你的v4包的版本);在android sdk里面可以找到v4的jar包,
找不到可以单独去网上下载下然后导入到libs里面,右键你可以看到一个Add as Iibrary…。
eclipse:
类似android studio里面的第二中方法。
2、ViewPager一些必须储备的知识
ViewPager直接继承自ViewGroup,就是说直接写了一个左右滑动的父控件出来,相比于用其他的父类控件来间接实现,运行起来的效率或使用的灵活性一定会有不少提高的。
ViewPager的定义有点类似于ListView需要一个pagerAdapter来配合实现展示效果,但是要注意的是这个PagerAdapter和ListView的Adapter是没有任何联系的,ViewPager和PagerAdapter自成一个体系,看图你就明白了。和ListView所使用的Adapter没有任何关系,但是同样需要注意另外一个问题,他为什么要叫Adapter?因为他和android里面的适配器(或者简单的说ListView的Adapter)是很相像的,他也可以注册观察者还有一些类似BaseAdapter的一些方法等。
实现一些比较复杂的操作的时候,最好用谷歌给提供的Fragment来实现View的效果,没有说必须,只是心里感觉舒服点,你也可以直接拿View来用,Fragment有他自己的生命周期,在某些条件下确实有很大的优势。
ViewPager提供了三种Adapter,分别是PagerAdapter、FragmentPagerAdapter和FragmentStatePagerAdapter,后面两个都继承自PagerAdapter.
3、ViewPager的使用
ViewPager和PagerAdapter结合的使用,这个就不多说了,网上有很多相关教程,大家可以综合这看下。
ViewPager和Fragment的结合使用,当使用Fragment和ViewPager联用时,应该用FragmentPagerAdapter或者FragmentStatePagerAdapter,两个Adapter都继承自PagerAdapter,说明ViewPager和Fragment是谷歌通过ViewPager和PagerAdapter来实现的。
怎么用呢?
三步
(1)、拿到ViewPager对象实例
ViewPager viewPager=(ViewPager)findViewById(R.id.lesson_content);“`
(2)、定义一个FragmentPagerAdapter
(3)、将FragmentPagerAdapter set给ViewPager
//定义一个
还有一个问题,ListView中不管有多少项,都只会加载不多的几个Adapter而已,就是说并不是每次展示ListView的下一个item的时候都需要将对应的View加载到内存中。那ViewPager的Adapter是不是也是这样的呢?
看下FragmentPagerAdapter和FragmentStatePagerAdapter,网上也有很多关于他们两个的区别,简单点说就是FragmentPagerAdapter会缓存几个Fragment从而减少每次滑动的时候的加载,而FragmentStatePagerAdapter每次都会重新执行一次Fragment的创建方法。连个Adapter所需要实现的方法都是一样的。刚才看到一个蛮详细的教程,没仔细看先给大家贴出来
http://blog.csdn.net/harvic880925/article/details/38453725
因为是总结,说的是我在使用ViewPager的时候遇到的一些问题以及解决方法,没有把ViewPager的使用给大家说的很详细。
这样就可以了,一个可以左右滑动的界面就设计好了,当然在这之前你应该对LIstView有一定的了解,说的比较笼统。Fragment的用法注意Google提供的范式(Fragment的正确传参方法) 这篇博客会说下Fragment的正确的使用方法,之所以说是正确的,是因为我之前的使用是存在错误的,是在项目签名的时候才发现的一个bug,所以也特地写出来给大家看看,当然网上也有相关资料,也会一并发出。
ViewPager是Android v4包中的一个控件,可以用来实现左右滑动的标签页。大概来了解下这个ViewPager这个类。
1、怎么导入v4包
android studio:
有两种方式 在你的moudle或者project的buildgradle中的导入依赖的地方加上一行 compile ‘com.android.support:support-v4:23.2.1’(注意:23.2.1是你的v4包的版本);在android sdk里面可以找到v4的jar包,
找不到可以单独去网上下载下然后导入到libs里面,右键你可以看到一个Add as Iibrary…。
eclipse:
类似android studio里面的第二中方法。
2、ViewPager一些必须储备的知识
ViewPager直接继承自ViewGroup,就是说直接写了一个左右滑动的父控件出来,相比于用其他的父类控件来间接实现,运行起来的效率或使用的灵活性一定会有不少提高的。
ViewPager的定义有点类似于ListView需要一个pagerAdapter来配合实现展示效果,但是要注意的是这个PagerAdapter和ListView的Adapter是没有任何联系的,ViewPager和PagerAdapter自成一个体系,看图你就明白了。和ListView所使用的Adapter没有任何关系,但是同样需要注意另外一个问题,他为什么要叫Adapter?因为他和android里面的适配器(或者简单的说ListView的Adapter)是很相像的,他也可以注册观察者还有一些类似BaseAdapter的一些方法等。
实现一些比较复杂的操作的时候,最好用谷歌给提供的Fragment来实现View的效果,没有说必须,只是心里感觉舒服点,你也可以直接拿View来用,Fragment有他自己的生命周期,在某些条件下确实有很大的优势。
ViewPager提供了三种Adapter,分别是PagerAdapter、FragmentPagerAdapter和FragmentStatePagerAdapter,后面两个都继承自PagerAdapter.
3、ViewPager的使用
ViewPager和PagerAdapter结合的使用,这个就不多说了,网上有很多相关教程,大家可以综合这看下。
ViewPager和Fragment的结合使用,当使用Fragment和ViewPager联用时,应该用FragmentPagerAdapter或者FragmentStatePagerAdapter,两个Adapter都继承自PagerAdapter,说明ViewPager和Fragment是谷歌通过ViewPager和PagerAdapter来实现的。
怎么用呢?
三步
(1)、拿到ViewPager对象实例
ViewPager viewPager=(ViewPager)findViewById(R.id.lesson_content);“`
(2)、定义一个FragmentPagerAdapter
class YourPagerAdapter extends FragmentPagerAdapter{ public YourPagerAdapter (FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { //实现一下你自己的Fragment,然后作为返回值return出去,下面创建Fragment对象的时候如果你不是很理解的话,可以参考下篇blog:Fragment的正确用法。 YourFragment fragment = LessonOneFragment.newInstance(position,files[position],contents); //上面有说可以注册监听者,可以参考下我上篇博客: ListView的观察者模式的应用,因为最近写的一项目里面有用到就直接写上来了 //registerDataSetObserver(fragment .getObserver()); return fragment; } @Override public int getCount() { return files.length; } }
(3)、将FragmentPagerAdapter set给ViewPager
//定义一个
FragmentManager fm = getFragmentManager(); ViewPager.setAdapter(new YourPagerAdapter (fm));
还有一个问题,ListView中不管有多少项,都只会加载不多的几个Adapter而已,就是说并不是每次展示ListView的下一个item的时候都需要将对应的View加载到内存中。那ViewPager的Adapter是不是也是这样的呢?
看下FragmentPagerAdapter和FragmentStatePagerAdapter,网上也有很多关于他们两个的区别,简单点说就是FragmentPagerAdapter会缓存几个Fragment从而减少每次滑动的时候的加载,而FragmentStatePagerAdapter每次都会重新执行一次Fragment的创建方法。连个Adapter所需要实现的方法都是一样的。刚才看到一个蛮详细的教程,没仔细看先给大家贴出来
http://blog.csdn.net/harvic880925/article/details/38453725
因为是总结,说的是我在使用ViewPager的时候遇到的一些问题以及解决方法,没有把ViewPager的使用给大家说的很详细。
这样就可以了,一个可以左右滑动的界面就设计好了,当然在这之前你应该对LIstView有一定的了解,说的比较笼统。Fragment的用法注意Google提供的范式(Fragment的正确传参方法) 这篇博客会说下Fragment的正确的使用方法,之所以说是正确的,是因为我之前的使用是存在错误的,是在项目签名的时候才发现的一个bug,所以也特地写出来给大家看看,当然网上也有相关资料,也会一并发出。
相关文章推荐
- 使用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