android - 離線地圖的這種列表該怎么實(shí)現(xiàn)?
問題描述
就是下圖這種列表,前兩個(gè)分組為單層的,其他身份的為雙層的,想了好久沒想通,只能來請教各位了...
問題解答
回答1:github上很多expandableListView的庫可以找找有沒有合適的,不過單純用recyclerView也能實(shí)現(xiàn),adapter里面分3種trpe,標(biāo)題(熱門省份等),次標(biāo)題(山東省等),具體省份。
點(diǎn)擊擴(kuò)展列表可以直接插入數(shù)據(jù)然后用adapter.notifyItemIntert()來刷新列表
回答2:推薦兩個(gè)庫https://github.com/zaihuishou...https://github.com/bignerdran...感覺單層的點(diǎn)擊效果可以單獨(dú)處理,直接下載地圖,雙層的展開,二級菜單下載地圖
回答3:我以前簡單寫過。自己定義一個(gè)簡單的樹形結(jié)構(gòu),里面記錄了子節(jié)點(diǎn)、本節(jié)點(diǎn)的層數(shù)、是否要展示本節(jié)點(diǎn)的子節(jié)點(diǎn) 和本節(jié)點(diǎn)是否為葉節(jié)點(diǎn),根據(jù)這些來判斷itemType(比如 是葉節(jié)點(diǎn)的話點(diǎn)擊是下載地圖,非葉節(jié)點(diǎn)的話是展開下一級列表),不過每次點(diǎn)擊都要觸發(fā)一次notifyDataSetChanged(),我感覺不大好。
Android 打造任意層級樹形控件 考驗(yàn)?zāi)愕臄?shù)據(jù)結(jié)構(gòu)和設(shè)計(jì) hongyang大神曾經(jīng)寫過一篇類似的文章,不過他是用的線性表存的
想了一下還是很多坑,默默坐等大神
回答4:推薦的開源recyclerview https://github.com/bignerdran...定義樹形結(jié)構(gòu)├─ItemStructure│ ├─ItemParent│ │ ├─ItemChildrens│ │ │ ├─ItemChildren1│ │ │ ├─ItemChildren2│ │ │ ├─ItemChildren3│ │ │ ├─.............ItemStructure作為Item的整個(gè)結(jié)構(gòu),ItemParent作為Item可下拉的部分,ItemChildrens作為最子層可下載的內(nèi)容。通過ViewType分類HeaderView、ItemParent、ItemChildrens列表
相關(guān)文章:
1. index.php錯(cuò)誤,求指點(diǎn)2. html5 - 設(shè)置判斷條件,設(shè)置ng-click無法跳轉(zhuǎn)3. java - spring boot 啟動(dòng)時(shí)報(bào)SunCertPathBuilderException4. macos - mac下docker如何設(shè)置代理5. 微信公眾號在線生成二維碼帶參數(shù)怎么搞?6. 微信開放平臺 - android 微信支付后點(diǎn)完成按鈕,后回調(diào)打開第三方頁面,屏幕閃動(dòng),求解決方法7. PHP單例模式8. javascript - 微信報(bào)redirect_uri參數(shù)錯(cuò)誤9. html5 - h5寫的app用的webview,用手機(jī)瀏覽器打開不顯示?10. html - 如何用css令背景圖能夠撐滿本身會滾動(dòng)的頁面?
