关于ViewPager
ViewPager
-----------------------------------
【基本特性】
1. ViewPager是容器类控件
2. ViewPager支持多个layout切换显示
3. ViewPager支持手势左右滑动,并自带左右平移动画
【关于支持jar包】
由于ViewPager是Android 3.0以后推出的新控件,为了兼容当时市场占有比例最高的Android 2.3.3,Google使用了jar包以实现对低版本的兼容。
【在layout中使用ViewPager】
由于ViewPager是v4包中的View类,在layout中使用时,必须显式的添加ViewPager所在的包名,例如<android.support.v4.view.ViewPager />
【使用ViewPager】
1. 创建所需的若干个layout
2. 在Activity中,创建List<View>集合,将各个layout加载为View对象后添加到集合中
3. 初始化ViewPager控件
4. 自定义类继承PagerAdapter,重写抽象方法,并且重写instantiateItem()与destroyItem()方法
5. 为ViewPager配置PagerAdapter
【关于PagerAdapter中的方法】
1. instantiateItem():初始化需要显示的View对象,需要将对象添加到参数container中,并作为该方法的返回值
2. destroyItem():销毁(移除)滑出屏幕的View对象,通过调用参数container的removeView()方法即可实现
3. getCount():返回需要显示的View的数量
4. isViewFromObject():将2个参数使用==对比即可
【PagerTitleStrip和PagerTabStrip】
PagerTitleStrip和PagerTabStrip都可以用于显示ViewPager的标题,在显示标题时,需要重写ViewPager对应的PagerAdapter中的getPageTitle()方法,以确定获取的标题文字。
PagerTitleStrip只会显示文字标题,且不可以点击,PagerTabStrip在显示文字标题时,还会在文字下方显示标题指示器,且标题可以点击用于切换页面显示。
关键字:Tab,Indicator
Fragment
-----------------------------------
Fragment表示“碎片”,它的设计理念是将Activity划分为不同的区块,各区块可以是某个控件,也可以是由Fragment实现显示的部分。
【基本特性】
1. 可以在布局中添加某个容器承载Fragment,具体的显示内容由Fragment实现
2. Fragment可以被附加到容器中,也可以被其它Fragment替换,也可以被从容器中移除,无论是哪种操作,对于Fragment的宿主Activity及该Activity中其它的部分不会产生影响
3. Fragment有独立的生命周期
【创建流程】
1. 自定义View,继承android.support.v4.app.Fragment
2. 重写onCreateView()方法,确定需要显示的内容的View对象,并作为该方法的返回值
【使用ViewPager+Fragment】
1. 将Activity类修改为继承自FragmentActivity
2. 自定义类,继承android.support.v4.app.FragmentPagerAdapter,并重写抽象方法
3. 在自定义的FragmentPagerAdapter中定义构造方法时,需要FragmentManager对象,可以通过调用getSupportFragmentManager()方法获取
4. 在自定义的FragmentPagerAdapter中的getItem()方法中,根据参数position创建不同的Fragment对象。
【注意事项】
1. 由于Fragment不是Context的子孙类,在Fragment中需要Context对象时,应该通过调用getActivity()获取其宿主Activity的对象,用于表示上下文对象
关于ViewPager相关推荐
- Android RecyclerView(和SnapHelper) 实现类似ViewPager的效果
实现的效果图如下 2 行代码就实现了,其余的都是recyclerview 的代码 如果不显示一次可以滑动多个的话可以使用LinearSnapHelper 具体代码如下(实际就2行代码呢) recycl ...
- ViewPager 实现界面加载不同的数据
demo 地址 下面是要要实现的效果图 有点类似RecyclerView 不过这个ViewPager 实现的 数据呢也是在adapter 中实现呢, 下面就直接上代码看看把 public class ...
- ViewPager与Fragment结合使用,以及切换的时候Fragment 的生命周期
下面要做的效果图下图 首先我们创建一个适配器如下 public class FraPagerAdapter extends FragmentPagerAdapter {private List< ...
- ViewPager 设置间距的方法
要实现的效果如下图 第一种方法:viewpager 外层添加一个布局 记得添加 android:clipChildren="false" // 是否限制子View在其范围内,默认为 ...
- 友盟页面统计 - 关于Viewpager中的Fragment的生命周期
Activity和Fragment各自理论上的生命周期 Activity的生命周期是较为经典也最清晰的,在此不表: Fragment从出现到广泛运用也有一段时间了,其标准生命周期也仅比Activity ...
- android 可折叠标题栏,ViewPager + Fragment + 折叠式标题栏异常
我模仿别人的知乎日报,新闻列表页没问题,内容明细页(NewsDetail)用的是ViewPager+Fragment.可以左右滑动看左右的新闻的. 我的项目地址是链接描述 但是我在做顶部可折叠式标题栏 ...
- android Viewpager取消预加载及Fragment方法的学习
1.在使用ViewPager嵌套Fragment的时候,由于VIewPager的几个Adapter的设置来说,都会有一定的预加载.通过设置setOffscreenPageLimit(int numbe ...
- android 弹出fragment,Android中ViewPager获取当前显示的Fragment
前言 在项目中,有时会用到在ViewPager中显示同样类型的Fragment,同时这样的Fragment的个数是动态的,但是PagerAdapter没有给我们提供getCurrentFragment ...
- 【Android】ViewPager实现无限循环滚动
最近做的一个项目,客户要求在ViewPager实现的主页面中滑动到最后一页后继续滑动能返回到第一页,也就是实现无限循环滚动,效果如下: 看了下ViewPager没有滑到尽头的回调方法,因此想到的解决方 ...
- Android ViewPager使用具体解释
这是谷歌官方给我们提供的一个兼容低版本号安卓设备的软件包,里面包囊了仅仅有在安卓3.0以上能够使用的api.而viewpager就是当中之中的一个利用它,我们能够做非常多事情,从最简单的导航,到页面菜 ...
最新文章
- c# hdf5 写string_聊一聊C#8.0中的 await foreach
- python绘制灰度图片直方图-python+opencv 灰度直方图及其二值化
- 破解IDEA2018的正确姿势
- 我有一个竞争方法,让用户去选择你的产品而不是别人
- MyBatisPlus中常用条件构造器示例代码
- 机器学习一定要很优秀才能做嘛?其实我们都可以。
- ceph osd跟cpu进行绑定
- md5与des算法有何不同_Python算法详解:为什么说算法是程序的灵魂?
- 来自一个从事单片机工作中遇到的真人真事,单片机从业者可以借鉴
- 2019 The Preliminary Contest for ICPC China Nanchang National Invitational
- 【Pytorch官方教程】从零开始自己搭建RNN1 - 字母级RNN的生成任务
- 硬核 | 用Python给女朋友送一颗彩蛋
- 数据链路层(以太网、MTU、ARP协议)
- 在CentOS上MySQL数据库服务器配置方法
- 【批量解压d文件】d文件是GNSS观测数据文件
- 解决Word文档中表格不会自动换页,而是在同一页word上往下换行的问题。
- WWDC15 iOS游戏开发3个新框架全解
- 清华大学邓俊辉《数据结构(C++语言版)第3版》随书资源
- 收集的签名档的好去处
- opc客户端读取数据品质是bad_OPC DCOM配置过程中常见问题及其处理_济南达索机电科技有限公司...