android - 離線地圖的這種列表該怎么實(shí)現(xiàn)?
問(wèn)題描述
就是下圖這種列表,前兩個(gè)分組為單層的,其他身份的為雙層的,想了好久沒(méi)想通,只能來(lái)請(qǐng)教各位了...
問(wèn)題解答
回答1:github上很多expandableListView的庫(kù)可以找找有沒(méi)有合適的,不過(guò)單純用recyclerView也能實(shí)現(xiàn),adapter里面分3種trpe,標(biāo)題(熱門(mén)省份等),次標(biāo)題(山東省等),具體省份。
點(diǎn)擊擴(kuò)展列表可以直接插入數(shù)據(jù)然后用adapter.notifyItemIntert()來(lái)刷新列表
回答2:推薦兩個(gè)庫(kù)https://github.com/zaihuishou...https://github.com/bignerdran...感覺(jué)單層的點(diǎn)擊效果可以單獨(dú)處理,直接下載地圖,雙層的展開(kāi),二級(jí)菜單下載地圖
回答3:我以前簡(jiǎn)單寫(xiě)過(guò)。自己定義一個(gè)簡(jiǎn)單的樹(shù)形結(jié)構(gòu),里面記錄了子節(jié)點(diǎn)、本節(jié)點(diǎn)的層數(shù)、是否要展示本節(jié)點(diǎn)的子節(jié)點(diǎn) 和本節(jié)點(diǎn)是否為葉節(jié)點(diǎn),根據(jù)這些來(lái)判斷itemType(比如 是葉節(jié)點(diǎn)的話點(diǎn)擊是下載地圖,非葉節(jié)點(diǎn)的話是展開(kāi)下一級(jí)列表),不過(guò)每次點(diǎn)擊都要觸發(fā)一次notifyDataSetChanged(),我感覺(jué)不大好。
Android 打造任意層級(jí)樹(shù)形控件 考驗(yàn)?zāi)愕臄?shù)據(jù)結(jié)構(gòu)和設(shè)計(jì) hongyang大神曾經(jīng)寫(xiě)過(guò)一篇類似的文章,不過(guò)他是用的線性表存的
想了一下還是很多坑,默默坐等大神
回答4:推薦的開(kāi)源recyclerview https://github.com/bignerdran...定義樹(shù)形結(jié)構(gòu)├─ItemStructure│ ├─ItemParent│ │ ├─ItemChildrens│ │ │ ├─ItemChildren1│ │ │ ├─ItemChildren2│ │ │ ├─ItemChildren3│ │ │ ├─.............ItemStructure作為Item的整個(gè)結(jié)構(gòu),ItemParent作為Item可下拉的部分,ItemChildrens作為最子層可下載的內(nèi)容。通過(guò)ViewType分類HeaderView、ItemParent、ItemChildrens列表
相關(guān)文章:
1. python - Win7調(diào)用flup報(bào)錯(cuò)’module’ object has no attribute ’fromfd’2. 網(wǎng)頁(yè)爬蟲(chóng) - Python 爬蟲(chóng)中如何處理驗(yàn)證碼?3. mysql - 分庫(kù)分表、分區(qū)、讀寫(xiě)分離 這些都是用在什么場(chǎng)景下 ,會(huì)帶來(lái)哪些效率或者其他方面的好處4. Python如何播放還存在StringIO中的MP3?5. javascript - 請(qǐng)教如何獲取百度貼吧新增的兩個(gè)加密參數(shù)6. mysql 一個(gè)sql 返回多個(gè)總數(shù)7. python - 我在使用pip install -r requirements.txt下載時(shí),為什么部分能下載,部分不能下載8. mysql - 如何減少使用或者不用LEFT JOIN查詢?9. Python爬蟲(chóng)如何爬取span和span中間的內(nèi)容并分別存入字典里?10. python - 編碼問(wèn)題求助
