android - 類似于微信朋友圈圖片這樣的是在listview中嵌套gridview還是動(dòng)態(tài)加入多個(gè)imageview呢?
問(wèn)題描述
類似于微信朋友圈圖片這樣的是在listview中嵌套gridview還是動(dòng)態(tài)加入多個(gè)imageview呢?
問(wèn)題解答
回答1:應(yīng)該是動(dòng)態(tài)添加多個(gè)imageview,你可以打開(kāi)開(kāi)發(fā)者選項(xiàng)里面的顯示布局邊界,或者GPU過(guò)度繪制,你會(huì)發(fā)現(xiàn)圖片列表的過(guò)度繪制越靠后越少,越靠前越多,比如三張一行的情況下,第一張圖片顏色最深,至少三層布局,第二張稍淺,最后一張基本沒(méi)有過(guò)度繪制,我猜測(cè)微信使用的可能是層疊類型的布局,比如RelativeLayout
回答2:一般不會(huì)在AbsListView里再嵌套使用AbsListView的, onMeasure(...)會(huì)多次測(cè)量第一個(gè)View.因此, 可能會(huì)導(dǎo)致滾動(dòng)會(huì)出現(xiàn)卡頓的現(xiàn)象.
可以考慮使用GridLayout + ViewStub的方式實(shí)現(xiàn). 自行百度或者Google這倆貨吧. 還可以考慮自定義視圖.
參考開(kāi)源項(xiàng)目:
github: qii/weiciyuan - Sina Weibo Android Client, 四次元 這是一個(gè)很老的項(xiàng)目了
相關(guān)文章:
1. boot2docker無(wú)法啟動(dòng)2. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””3. docker-compose中volumes的問(wèn)題4. javascript - mock.js可以存儲(chǔ)數(shù)據(jù)嗎5. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.6. nignx - docker內(nèi)nginx 80端口被占用7. java - SSH框架中寫(xiě)分頁(yè)時(shí)service層中不能注入分頁(yè)類8. docker api 開(kāi)發(fā)的端口怎么獲取?9. dockerfile - 為什么docker容器啟動(dòng)不了?10. golang - 用IDE看docker源碼時(shí)的小問(wèn)題

網(wǎng)公網(wǎng)安備