繼續(xù)討論一下如何實(shí)現(xiàn)手機(jī)QQ里那個(gè)增強(qiáng)版的ExpandableListView效果,如下圖:
Android缺省的ExpandableListView的group header無(wú)法固定在界面上,當(dāng)向下滾動(dòng)后,不能對(duì)當(dāng)前顯示的那些child 指示出它們歸屬于哪個(gè)group,而這一點(diǎn),在iphone中的tableview就做的非常好。
所以,我們來(lái)做一個(gè)固定在列表上方的提示框,顯示當(dāng)前顯示的展開(kāi)的那些child歸屬的group信息。
思路:
1. 先弄一個(gè)TextView作為指示器放在ListView的上面,跟列表上緣平齊。
2. 處理列表的上下滾動(dòng)回調(diào):
就這樣了,是吧?
一切就這么簡(jiǎn)單,然后看看它放的位置是:
我為了省事,直接從TextView中派生出這個(gè)指示器,其實(shí)你可以更復(fù)雜點(diǎn),從一個(gè)ViewGroup之類的東西來(lái)做出更多的效果。
細(xì)心的朋友可以發(fā)現(xiàn)了,在QQ中,當(dāng)上移列表時(shí),有一個(gè)效果是下一個(gè)group header將指示器給推出屏幕的,圖省事,我沒(méi)這樣做,留給兄弟你去擴(kuò)展了。
此外,反編譯QQ的代碼可知,其實(shí)它的實(shí)現(xiàn)是自己做了一個(gè)叫 IphoneTreeView的類,繼承了ExpandableListView,這樣做更靈活也更好,同樣,如果要實(shí)現(xiàn)更完美的效果,還有很多事情要做的。
最近想學(xué)習(xí)一下iphone的開(kāi)發(fā),有點(diǎn)沒(méi)動(dòng)力繼續(xù)寫(xiě)這個(gè)題目了。所以,只是在這兒拋磚引玉罷了,如果你們做出了更好的效果,請(qǐng)拿出來(lái)共享。
先謝謝了!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
