ViewPager的使用

阅读原文

ViewPager的使用

public int getCount()

//返回了当前要滑动视图的个数


instantiateItem (ViewGroup container, int position)

//这个函数的实现的功能是创建指定位置的页面视图。适配器有责任增加即将创建的View视图到这里给定的container中

返回值:返回一个代表新增视图页面的Object(Key),这里没必要非要返回视图本身,也可以这个页面的其它容器。

其实我的理解是可以代表当前页面的任意值,只要你可以与你增加的View一一对应即可,比如position变量也可以做为Key.

第一:将参数里给定的position的视图,增加到conatiner中,供其创建并显示.

第二:返回当前position的View做为此视图的Key


public abstract boolean isViewFromObject (View view, Object object)

功能:该函数用来判断instantiateItem(ViewGroup, int)函数所返回来的Key与一个页面视图是否是代表的同一个视图(即它俩是否是对应的,对应的表示同一个View)

返回值:如果对应的是同一个View,返回True,否则返回False。


public void destroyItem (ViewGroup container, int position, Object object)

该方法实现的功能是移除一个给定位置的页面。

适配器有责任从容器中删除这个视图。

这是为了确保在finishUpdate(viewGroup)返回时视图能够被移除。


(1)support-v4

support-v4包算是 Android 最低等级的支持包。

所谓的 v4,代表着它最低支持 Android1.6(API Level4),这个版本算得上是一个真正意义上比较成熟的 Android版本,更何况现在我们写应用的时候一般都只最低支持到 Android 2.x 系统,对于1.x 的系统基本已经已经完全抛弃了,因此你可已经他作为最基本的系统组件使用。

在 support-v4包中,它所拥有的类还是很多的,主要包含了对应用组件的支持,用户交互体验的一些工具类,一些数据网络方面的工具类,相面我们将详细来看看它里面具体的一些类。

1.系统组件部分

Fragment:

其实 Fragment 是直到 Android3.0才正式进入 Android 框架体系的,但是 Android 为了低版本的兼容,因此他帮我们在低版本也适配了 Fragment 框架.

NotificationCompat:

这是通知栏的一些适配,可以帮助你在低版本的通知栏显示更加丰富的信息

LocalBroadcastManager:

这个是用于本地广播通知的,当你希望发送的通知只被本应用接收时,你就应该使用它


2.用户界面交互部分

ViewPager

这个相信我不用怎么说了,他主要用于帮助我们进行界面间的滑动交互

PagerTitleStrip,PagerTabStrip

这两个算是 ViewPager 的帮助类吧,他们的作用是进行 Tab 栏的切换辅助显示

DrawerLayout

主要用于侧滑栏的实现

SlidingPaneLayout

这个类也是用于侧滑栏的实现,和 DrawerLayout 不同的是,

DrawerLayout 侧滑栏出来的时候,默认是覆盖在当前页面上,

而 SlidingPaneLayout 则是会将当前页面移走。


3. Accessbility访问的帮助类

ExploreByTouchHelper

帮助自定义 View 实现 Accessibility 的工具类

AccessbilityEventCompat, AccessbilityNodeInfoCompat, AccessbilityNodeProviderCompat, AccessbilityDelegateCompat,这几个都是用作 Accessibility 功能适配的类


4.数据访问帮助类

Loader

主要用于异步加载数据

FileProvider

提供应用间的文件分享功能


(2)support-v7

1.Appcompat

这个包的主要作用是为了在低版本实现 Android 的 Holo 风格界面而引入的,与之类似的有一个开源项目叫做 SherlockActionbar

2.CardView

卡片布局是最近在 android5.0发布的时候才引入的新包,在我看来,他主要效果是让应用进行卡片花显示

3.GridLayout

网格布局能够帮助你将整个布局按照一格两格的格子形式进行排列

4.MediaRouter

这个布局主要是用来支持 GoogleCast 的,主要用于进行设备间的音频,视频交换显示

5.Palette

这个包也是最新出来的,他的作用是帮助 Android 实现他的 MaterialDesign,让你的 Actionbar 能够根据界面进行对应的颜色改变

7.RecyclerView

这个包同样也是刚出来的,他的作用是替换 ListView 和 GridView,但是可惜是没有实现 OnItemClick 这些接口,你需要自己处理它


(3)support-v8

support-v8中其实只有一格特性,就是用来渲染脚本


(4)support-v13

这个包的作用主要是为 Android3.2级以上的系统提供更多地 Framgnet 特性支持,使用它的原因在于,android-support-v4包中虽然也对 Fragment 做了支持,由于要兼容低版本,导致他是自行实现的 Fragment 效果,在高版本的 Fragment 的一些特性丢失了,而对于 v13以上的 sdk 版本,我们可以使用更加有效,特性更多的代码


(5)support-v17

这个包得主要作用是用于支持电视设备,并为电视设备提供了很多组件

例如下面的:

BrowseFragment

DetailFragment

PlaybasckOverlayFragment
 
SearchFragment

但是原谅我没有做过 Android TV 开发,我也不知道他们的用处是什么,如果真的想要查看,请去官网看看吧

Android PageAdapter翻译

Public Methods void   destroyItem(ViewGroup container, int position, Object object)
移除给定位置的页面


void   destroyItem(View container, int position, Object object)
该方法已废弃.使用 destroyItem(ViewGroup, int, Object)替代


void   finishUpdate(View container)
该方法已废弃.使用 finishUpdate(ViewGroup)代替


void   finishUpdate(ViewGroup container)
当显示界面加载完成时调用该方法


abstract int   getCount()
返回可用的视图数量.


int  getItemPosition(Object object)
如果item位置没有发生改变则返回POSITION_UNCHANGED如果发生了改变则返回POSITION_NONE


CharSequence   getPageTitle(int position)
设置当前位置上的ViewPager的标题


float  getPageWidth(int position)
返回position位置测量的页面的宽高比例范围是(0.f-1.f]


Object instantiateItem(ViewGroup container, int position)
根据指定的位置创建一个page item


Object instantiateItem(View container, int position)
此方法已废弃,使用 instantiateItem(ViewGroup, int)代替


abstract boolean isViewFromObject(View view, Object object)
Determines whether a page View is associated with a specific key object as returned by instantiateItem(ViewGroup, int).


void   notifyDataSetChanged()
调用该方法更新数据


void   registerDataSetObserver(DataSetObserver observer)
注册观察者


void   restoreState(Parcelable state, ClassLoader loader)
恢复与adapter关联的所有页面的状态实例,并且该页面是通过saveState()方法保存的。


Parcelable  saveState()
保存于adapter关联的所有的页面,直到调用restoreState方法时被恢复

void   setPrimaryItem(View container, int position, Object object)
This method is deprecated. Use setPrimaryItem(ViewGroup, int, Object)
void   setPrimaryItem(ViewGroup container, int position, Object object)
Called to inform the adapter of which item is currently considered to be the "primary", that is the one show to the user as the current page.


void   startUpdate(View container)
该方法已废弃.使用 startUpdate(ViewGroup)代替


void   startUpdate(ViewGroup container)
开始调用显示页面


void   unregisterDataSetObserver(DataSetObserver observer)
在回调函数中通过adapter的数据变化注销观察者对象
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342