PagerAdapter學習

前言: ViewGroup可以實現很多功能,如簡單的頁面導航和頁面滑動等等。谷歌公司
為我們提供ViewGroup的API。谷歌公司推薦我們把ViewGroup和Fragment一起使,如果一起使用的話,
應該使用FragmentPagerAdapter和FragmentStatePagerAdapter來進行適配處理,在這里我們只看單
獨使用ViewGroup的情況,這時我們需要使用PagerAdapter

(一)至少要進行重寫的函數
1 public boolean isViewFromObject(View arg0, Object arg1)?
2 public int getCount()?
3 public void destroyItem(ViewGroup container, int position,Object object)
4 public Object instantiateItem(ViewGroup container, int position)?
(二)重寫函數解析
其實PagerAdapter和AdapterView存在著一定的區別,ViewPager使用回調函數來
表示一個更新的過程,而并不像AdapterView一樣使用一個視圖回收機制,
當然在有時也會使用這種巧妙的方式,就是當我們按照android推薦的
方式將Fragment和ViewPager一起使用時,在這里就不提了。在pageradapter
中使用一個鍵值來對應每一個視圖,這個鍵值獨立于這個頁面所在的position
當然在你進行自定義的時候,如果使用的PagerAdapter比較簡單,你也可以直接
使用視圖對應的position來充當鍵值,好了接下來我就大致說下我對這四個
重寫函數的大致理解,全是拙見哈哈。
1 getCount()?
毋庸多言,這個就是來返回你所想要在Viewpager中使用的View的個數,這個View的布局可以自己設定,
并不一定非要占滿屏幕,在你任意給定的位置都可以實現ViewPager的效果。
2 destroyItem(ViewGroup container, int position,Object object)
這個函數用來移除一個給定位置的視圖。
3 instantiateItem(ViewGroup container, int position)
這是一個很重要的函數了,它用來創建指定位置的頁面視圖,并將其保存到給定的容器
container之中。
它返回一個你新增加的視圖頁面對應的鍵值,這個鍵值并不一定就要返回視圖本身,其實只要是
能夠與你的這個視圖相對應的就行。
4 isViewFromObject(View arg0, Object arg1)
這個函數用來判斷instantiateItem()函數返回的值對應的視圖是否與參數傳遞進來的這個視圖
是同一個視圖,如果是的話就返回true,否者就返回false。
	PagerAdapter pagerAdapter = new PagerAdapter() {@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0 == arg1;}/*** 返回要滑動的View的個數*/@Overridepublic int getCount() {// TODO Auto-generated method stubreturn viewList.size();}/*** destroyItem():從當前container中刪除指定位置(position)的View*/@Overridepublic void destroyItem(ViewGroup container, int position,Object object) {// TODO Auto-generated method stubcontainer.removeView(viewList.get(position));}/*** instantiateItem():做了兩件事,第一:將當前視圖添加到container中,第二:返回當前View*/@Overridepublic Object instantiateItem(ViewGroup container, int position) {// TODO Auto-generated method stubcontainer.addView(viewList.get(position));return viewList.get(position);}};
基本上將這四個函數重寫后就能夠完成對PagerAdapter的設置了。當然android.support.v4包還為我們提供了
實現標題欄的控件PagerTabStrip與PagerTitleStrip,也很簡單只是在PagerAdapter中添加幾個函數就可以實現
更漂亮的效果,這里就不說了,有興趣的可以自己學習。。。。。。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453557.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453557.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453557.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

arXiv網站

arXiv 原先是由物理學家保羅金斯巴格在1991年建立的網站, 我們會將預稿上傳到arvix作為預收錄,因此這就是個可以證明論文原創性(上傳時間戳)的文檔收錄網站。轉載于:https://www.cnblogs.com/AntonioSu/p/8387324.html

加薪——愛你在心口難開

加薪——愛你在心口難開(1) (原文刊登于《程序員》雜志07年第4期) 剛過了春節的4月份,空氣中到處透著躁動的味道,“求職”、“招聘”不斷刺激著程序員們的耳鼓,其實大多數跳槽者如果能靜下心來審視自己一下&#xf…

java線程interrupt用法_Java線程中interrupt那點事 | 學步園

1.先看一下例子程序:import java.io.IOException;import java.net.ServerSocket;import javax.rmi.CORBA.Tie;/**author: ZhengHaibo*web: http://blog.csdn.net/nuptboyzhb*mail: zhb931706659126.com*2014-3-16 Nanjing,njupt,China*/public class TestThread {/*…

Kotlin Native新增Objective-C互操作能力以及對WebAssembly的支持

根據JetBrains技術主管Nikolay Igotti的介紹,Kotlin/Native 0.4已經可用于為iOS和macOS開發原生應用。此外該版本還為WebAssembly平臺提供了實驗性支持。 \\Kotlin/Native對iOS/macOS開發的支持,關鍵在于實現了與Objective-C的互操作性。JetBrains目前已…

TranslateAnimation動畫

眾所周知,TranslateAnimation是android中重要的一個動畫函數,很多時候我們都需要使用它來實現更好的UI效果,今天就簡單研究下這個TranslateAnimation。TranslateAnimation這個位移動畫主要有三個構造函數,對應著三種不同的參數形式…

maven項目使用jacoco插件檢測代碼覆蓋率詳細配置

使用maven構建項目&#xff08;java項目或者web項目都可以&#xff09; jacoco插件的配置參考官方網址&#xff1a;http://www.eclemma.org/jacoco/trunk/doc/maven.html &#xff08;1&#xff09;配置jacoco的依賴jar包 <dependency><groupId>org.jacoco</gro…

JAVA如何取得空list成員類型_String 類型的List作為一個成員變量保存,保存成功后取對象時報空指針...

異常&#xff1a;Caused by: java.lang.NullPointerException at org.litepal.crud.DataHandler.setToModelByReflection(DataHandler.java:1341) at org.litepal.crud.DataHandler.setGenericValueToModel(DataHandler.java:787) at org.litepal.crud.DataHandler.query(DataH…

C語言:幾種字符輸入函數的區別

幾種字符輸入函數的區別&#xff1a; 1、getche()函數:用于從鍵盤讀入一個字符并顯示&#xff0c;然后直接執行下一條語 句。2、getch()函數:用于從鍵盤中讀入一個字符&#xff0c;但不顯示在屏幕上&#xff0c;然后執行下一條語句。3、getchar()函數&#xff1a;用于從鍵盤讀…

VCG Mesh剛性旋轉(變換矩陣)

文章目錄 一、簡介二、實現代碼三、實現效果參考資料一、簡介 旋轉矩陣如果從線性空間的角度來看,它類似于一個投影過程。假設坐標 P ( x 1 , y 1 , z 1 ) P(x_1,y_1,z_1)

薪水增長多少,新機會才值得考慮?

薪水增長多少,新機會才值得考慮? 陰歷年馬上就要來到&#xff0c;豬年正在向我們招手。相信有些朋友年后考慮新的要作機會&#xff0c;年終獎和第13個薪水已到手&#xff0c;是考慮一下離開這個讓自己不“爽”公司的時候了&#xff0c;哈哈&#xff01; 但是&#xff0c;薪水…

ScaleAnimation動畫

ScaleAnimation動畫是用來進行縮放的動畫&#xff0c;我在使用時剛開始有些不解的問題后來經過學習&#xff0c;有了一個更深的了解。先來看看源碼&#xff0c;其實ScaleAnimation有四個構造函數&#xff0c;這里我只列出了其中的一個&#xff0c;因為另外的三個其實都只是這個…

Swift快速入門(一)第一個Swift程序

1. 本系列說明 本系列只是一個Swift快速入門的教程&#xff0c;并沒有詳盡的介紹Swift&#xff0c;Swift也并不是一個簡單的編程語言&#xff0c;所以要想詳盡的系統的學習Swift&#xff0c;本系列并不適合你&#xff0c;此系列只是讓開發者可以快速的用Swift來進行開發。另外學…

java 判斷數字變化增減_java String 強化操作 判斷數字 字符串轉阿拉伯數字,相似度等等...

importjava.io.BufferedReader;importjava.io.StringReader;importjava.util.ArrayList;importjava.util.List;importjava.util.regex.Matcher;importjava.util.regex.Pattern;/***author*/public classStrings {/*** 全角轉半角**paramsbc 全角字符*returnString*/public stat…

[CareerCup] 4.7 Lowest Common Ancestor of a Binary Search Tree 二叉樹的最小共同父節點

4.7 Design an algorithm and write code to find the first common ancestor of two nodes in a binary tree. Avoid storing additional nodes in a data structure. NOTE: This is not necessarily a binary search tree. LeetCode上的原題&#xff0c;請參見我之前的博客Lo…

讓獵頭雨天送傘--大話獵頭

讓獵頭雨天送傘--大話獵頭(1) Arthur畢業之后&#xff0c;在一同家公司的研發部工作了7年&#xff0c;從初級開發工程師一直做到項目經理&#xff0c;過手十幾個大項目&#xff0c;現在帶領8人的研發團隊。獵頭最近頻頻與他溝通&#xff0c;希望他考慮幾個外企研發主管的機會…

android布局的一些知識

(一)android:layout_alignParentBottom 控制該組件是否與布局容器底端對齊android:layout_alignParentLeft 控制該組件是否與布局容器左邊對齊android:layout_alignParentRight 控制該組件是否與布局容器右邊對齊android:layout_alignParentTop 控制該組件是否與布局容器頂端對…

IE8兼容問題總結---trim()方法

1.IE8不支持,jquery的trim()去空格的方法 錯誤表現 : 會報錯,對象不支持此屬性或方法; 解決辦法 : 使用正則匹配空格 例如 : /^\s|\s$/greplace(/^\s|\s$/g,"");轉載于:https://www.cnblogs.com/lizhiwei8/p/8392589.html

java的流套接_java-使用流關閉套接字

我的以下問題非常簡單.這是我的代碼&#xff1a;public class Protocol implements Runnable {private SSLSocket socket null;private InputStream is null;private OutputStream os null;...public Protocol(Socket s) {socket (SSLSocket)s;is socket.getInputStream()…

簡歷撰寫

沒什么可寫的項目&#xff0c;或者自己說不太清&#xff0c;效果也不明顯的項目&#xff0c;就不要寫簡歷上了轉載于:https://www.cnblogs.com/brainstorm/p/7942669.html

如何真正做好項目管理?

項目要能順利執行其實并不簡單&#xff0c;如果又渉及多個單位合作&#xff0c;困難程度又大增。 從項目經理的工作日志片段&#xff0c;可以看出每個項目經理應該都有自已悲慘的故事&#xff0c;程度恐怕只有過之而無不及。項目經理到底應該有那些看家本領呢&#xff1f; …