哈哈,你在做反面教材嘛?不知道哪個(gè)是你寫(xiě)的,哪個(gè)是網(wǎng)上的錯(cuò)誤的。
糾正一下:首先,你的代碼里出現(xiàn)FastStaggeredGridLayoutManager?這個(gè)是從哪里來(lái)的?。我猜測(cè),繼承了LayoutManager,這個(gè)就是一切的關(guān)鍵(可能里面做了很多處理,從而實(shí)現(xiàn)了瀑布流效果)。也不是StaggeredLayoutManager。
網(wǎng)上說(shuō)的給一個(gè)random高度,也能實(shí)現(xiàn)。只不過(guò)數(shù)據(jù)多了,會(huì)錯(cuò)位。比較有效的方式跟圖片一起獲取圖片的高寬來(lái)加載。
你說(shuō)只有Glide能實(shí)現(xiàn),你用過(guò)ImageLoader嘛?用過(guò)Picasso?用過(guò)Coil?..其實(shí),不需要這些第三方庫(kù)也能實(shí)現(xiàn)。只不過(guò)Glide沒(méi)有圖片寬高的情況下能獲取寬高。
再說(shuō)一個(gè)比較突出的,holder.getViewType()你知道這個(gè)是什么嘛?感覺(jué)你沒(méi)理解這個(gè)是什么…
最后,無(wú)論是從哪里,拷貝別人的代碼,注明一下來(lái)處。表示尊重。