因?yàn)橛龅匠绦蛐枰獙?shí)現(xiàn)下拉刷新和上拉加載更多的,而又不想自己來(lái)進(jìn)行判斷硫豆,因?yàn)轫?yè)面過(guò)于多龙巨,每個(gè)地方都要進(jìn)行判斷,并且自己的判斷不夠嚴(yán)禁熊响,所以使用了一個(gè)十分簡(jiǎn)單好用的第三方旨别。
? 其實(shí)算是別的大神寫(xiě)好的框架,也就是SuperSwipeRefreshLayout汗茄,框架確實(shí)十分的簡(jiǎn)單秸弛,并且好用,只用調(diào)用上拉和下拉的監(jiān)聽(tīng)洪碳,就能夠?qū)崿F(xiàn)下拉刷新递览,和上拉加載更多的功能。
只需要實(shí)現(xiàn)這兩個(gè)監(jiān)聽(tīng)瞳腌,就可以輕易的實(shí)現(xiàn)下拉刷新和上拉加載绞铃,而且可以自己自定義頭部和底部,只用把自定義的setHead 或SetFoot但是嫂侍,在使用的過(guò)程中儿捧,發(fā)現(xiàn)了一些關(guān)于上拉加載的問(wèn)題, 在上拉的過(guò)程中吵冒,還沒(méi)有拉到底部纯命,就觸發(fā)了上拉加載更多的監(jiān)聽(tīng),此時(shí)痹栖,上拉加載更多的布局就出現(xiàn)亿汞,擋住最后的一個(gè)listView,
只能去看源碼當(dāng)中的監(jiān)聽(tīng)揪阿,發(fā)現(xiàn)源碼的監(jiān)聽(tīng)關(guān)于listView的是判斷當(dāng)前顯示的是否是最后一個(gè)疗我,如果是的話,就觸發(fā)監(jiān)聽(tīng)南捂,所以當(dāng)我最后一個(gè)Item項(xiàng)出現(xiàn)之后吴裤,滿(mǎn)足了觸發(fā)條件,所以觸發(fā)了監(jiān)聽(tīng)溺健。
再查閱了一些相關(guān)的判斷之后麦牺,最后將關(guān)于SuperSwipeRefreshLayout當(dāng)中? 關(guān)于ListView的監(jiān)聽(tīng)事件進(jìn)行了改變
注:view的getBottom()表示的是該View底部到父控件的左上角的垂直距離
當(dāng)ListView的最后一個(gè)child View的getBottom()小于等于ListView的getHeight()時(shí),就表示ListView滾動(dòng)到底部或已經(jīng)在底部了鞭缭,不能再向下滑動(dòng)了剖膳。
因?yàn)镾uperSwipeRefreshLayout并不像PullToRefresh等這些名氣大的第三方框架,所以在網(wǎng)上查了很多岭辣,有遇到相似問(wèn)題的吱晒,但是沒(méi)有找到解決方案,雖然簡(jiǎn)單沦童,但畢竟是自己解決的仑濒,對(duì)與新手來(lái)說(shuō)叹话,還是比較有成就感。
2016-11-6?? 呂偲胖子第一次煮雞湯的日子墩瞳,雖然完全失去了雞的鮮香驼壶,但是還有雞的腥啊
參考:http://blog.csdn.net/hudashi/article/details/46563811
http://blog.csdn.net/nupt123456789/article/details/48225139#reply