ListView分頁加載數(shù)據(jù)

(一)采呐、目的:

Android 應(yīng)用開發(fā)中茴厉,采用ListView組件來展示數(shù)據(jù)是很常用的功能,當(dāng)一個(gè)應(yīng)用要展現(xiàn)很多的數(shù)據(jù)時(shí)赏胚,一般情況下都不會(huì)把所有的數(shù)據(jù)一次就展示出來访娶,而是通過
分頁的形式來展示數(shù)據(jù),這樣會(huì)有更好的用戶體驗(yàn)觉阅。因此崖疤,很多應(yīng)用都是采用分批次加載的形式來獲取用戶所需的數(shù)據(jù)。例如:微博客戶端可能會(huì)在用戶滑 動(dòng)至列表底端時(shí)自動(dòng)加載下一頁數(shù)據(jù)典勇,也可能在底部放置一個(gè)"查看更多"按鈕劫哼,用戶點(diǎn)擊后,加載下一頁數(shù)據(jù)割笙。

(二)权烧、核心技術(shù)點(diǎn):

借助ListView組件的OnScrollListener監(jiān)聽事件眯亦,去判斷何時(shí)該加載新數(shù)據(jù);

往服務(wù)器get傳遞表示頁碼的參數(shù):page般码。而該page會(huì)每加載一屏數(shù)據(jù)后自動(dòng)加一妻率;

利用addAll()方法不斷往list集合末端添加新數(shù)據(jù),使得適配器的數(shù)據(jù)源每新加載一屏數(shù)據(jù)就發(fā)生變化板祝;

利用適配器對(duì)象的notifyDataSetChanged()方法宫静。該方法的作用是通知適配器自己及與該數(shù)據(jù)有關(guān)的view,數(shù)據(jù)已經(jīng)發(fā)生變動(dòng)券时,要刷新自己囊嘉、更新數(shù)據(jù)。

(三)革为、 OnScrollListener監(jiān)聽事件 :

1、該監(jiān)聽器中有兩個(gè)需要實(shí)現(xiàn)的方法:

onScrollStateChanged(AbsListView view, int scrollState):監(jiān)聽屏幕的滾動(dòng)狀態(tài)的變動(dòng)情況

onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount,
int totalItemCount):監(jiān)聽屏幕滾動(dòng)的item的數(shù)量

2舵鳞、 scrollState 回調(diào)順序如下:

第1次:scrollState = SCROLL_STATE_TOUCH_SCROLL(1):表示正在滾動(dòng)震檩。當(dāng)屏幕滾動(dòng)且用戶使用的觸碰或手指還在屏幕上時(shí)為1

第2次:scrollState =SCROLL_STATE_FLING(2) :表示手指做了拋的動(dòng)作(手指離開屏幕前,用力滑了一下蜓堕,屏幕產(chǎn)生慣性滑動(dòng))抛虏。

第3次:scrollState =SCROLL_STATE_IDLE(0) :表示屏幕已停止。屏幕停止?jié)L動(dòng)時(shí)為0套才。

3迂猴、 onScroll中參數(shù)講解:

firstVisibleItem:當(dāng)前窗口中能看見的第一個(gè)列表項(xiàng)ID(從0開始)

visibleItemCount:當(dāng)前窗口中能看見的列表項(xiàng)的個(gè)數(shù)(小半個(gè)也算)

totalItemCount:列表項(xiàng)的總數(shù)

4、思路:

當(dāng)滾到最后一條背伴,加載新數(shù)據(jù)沸毁;

適配器的數(shù)據(jù)源要進(jìn)行累加:totalList.addAll(list);

數(shù)據(jù)發(fā)生變化,適配器通知:adapter.notifyDataSetChanged();【牢記】

判斷是否滾到最后一行傻寂。

示例代碼:

if (firstVisibleItem + visibleItemCount ==
totalItemCount ) {

isBottom = true;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末息尺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子疾掰,更是在濱河造成了極大的恐慌搂誉,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件静檬,死亡現(xiàn)場離奇詭異炭懊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拂檩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門侮腹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人广恢,你說我怎么就攤上這事凯旋。” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵至非,是天一觀的道長钠署。 經(jīng)常有香客問我,道長荒椭,這世上最難降的妖魔是什么谐鼎? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮趣惠,結(jié)果婚禮上狸棍,老公的妹妹穿的比我還像新娘。我一直安慰自己味悄,他們只是感情好草戈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著侍瑟,像睡著了一般唐片。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涨颜,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天费韭,我揣著相機(jī)與錄音,去河邊找鬼庭瑰。 笑死星持,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的弹灭。 我是一名探鬼主播督暂,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼穷吮!你這毒婦竟也來了损痰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤酒来,失蹤者是張志新(化名)和其女友劉穎卢未,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體堰汉,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辽社,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了翘鸭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滴铅。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖就乓,靈堂內(nèi)的尸體忽然破棺而出汉匙,到底是詐尸還是另有隱情拱烁,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布噩翠,位于F島的核電站戏自,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏伤锚。R本人自食惡果不足惜擅笔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屯援。 院中可真熱鬧猛们,春花似錦、人聲如沸狞洋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吉懊。三九已至耳胎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惕它,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來泰國打工废登, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留淹魄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓堡距,卻偏偏與公主長得像甲锡,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子羽戒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容