java - 安卓 如何實(shí)現(xiàn)RecyclerView嵌套listview 實(shí)現(xiàn)類(lèi)似淘寶購(gòu)物車(chē)這種的數(shù)據(jù)顯示
問(wèn)題描述
問(wèn)題解答
回答1:為什么一定要是嵌套呢?你可以左邊是一個(gè)listview 然后右邊也是一個(gè)listview或者fragment,當(dāng)點(diǎn)擊listview的item的時(shí)候改變右邊的數(shù)據(jù)不就好了
回答2:item的布局可以是一個(gè)TextView和一個(gè)LinearLayout,其中LinearLayout可以addView。偽代碼如下,先封裝下數(shù)據(jù)
class CourseList{String name;List<Course> courses;}
在Adapter中綁定數(shù)據(jù)時(shí),
TextView.setText(name)for(i=0;i<courses.size();i++){ TextView tv =new TextView(); tv.setText(courses.get(i).name); LinearLayout.add(tv);}
另一種思路是item的布局是TextView和RecycleView,但是考慮到當(dāng)具體課程數(shù)量過(guò)多,超出屏幕高度時(shí),會(huì)出現(xiàn)與父ListView的滑動(dòng)沖突,解決起來(lái)很麻煩。
回答3:樓上說(shuō)的是一個(gè)解決方案,不過(guò)其實(shí)嵌套也沒(méi)這么麻煩,你重寫(xiě)子view的onDispatchTouchEvent事件,做一個(gè)滑動(dòng)手勢(shì)判定,如果是滑動(dòng),就放棄處理整個(gè)事件序列,或者重寫(xiě)父view的OnDispatchTouchEvent,是滑動(dòng)就不再分發(fā),原理是一樣的。
相關(guān)文章:
1. python - 數(shù)據(jù)與循環(huán)次數(shù)對(duì)應(yīng)不上2. node.js - nodejs開(kāi)發(fā)中常用的連接mysql的庫(kù)3. mysql - jdbc的問(wèn)題4. python - 我在使用pip install -r requirements.txt下載時(shí),為什么部分能下載,部分不能下載5. 視頻文件不能播放,怎么辦?6. mysql - 分庫(kù)分表、分區(qū)、讀寫(xiě)分離 這些都是用在什么場(chǎng)景下 ,會(huì)帶來(lái)哪些效率或者其他方面的好處7. windows7 ping不通虛擬機(jī)VMware上的linux(ubuntu)的ip8. 網(wǎng)頁(yè)爬蟲(chóng) - python 爬取網(wǎng)站 并解析非json內(nèi)容9. python - 編碼問(wèn)題求助10. mysql - 如何減少使用或者不用LEFT JOIN查詢(xún)?
