最近在做公司項目的時候,有一個設(shè)計是殖蚕,一個頁面轿衔,上面是一個普通的布局控件,下面是一個list睦疫,需要整體滑動害驹,因此就使用了NestedScrollView 里面包線性布局,線性布局里面普通的控件+recyclerview蛤育,采用的是分頁加載宛官,剛開始測試數(shù)據(jù)沒有問題葫松,越加載的更多,越來越卡底洗,最后直接ANR腋么,整的我一臉懵逼,因為recyclerview是能進(jìn)行布局復(fù)用的亥揖,加載大量數(shù)據(jù)是不可能出現(xiàn)ANR的珊擂,最終調(diào)試發(fā)現(xiàn),onCreateViewHolder()被頻發(fā)調(diào)用费变,原來摧扇,用NestedScrollView 嵌套RecyclerView的時候,RecyclerView會把所有的item一次性全部加載完挚歧,數(shù)據(jù)量小的時候扛稽,沒什么感覺,但是等到數(shù)據(jù)量變大的時候滑负,就會出問題在张。
最終解決方案:
①去掉NestedScrollView ,讓RecyclerView單獨滑動橙困,這樣就不會出現(xiàn)這種問題了瞧掺,但是產(chǎn)品不一定同意。
②完美解決方式:采用多布局凡傅,讓recyclerview上面的控件作為一個item加載進(jìn)recyclerview上的第一個item辟狈,下面的item放list數(shù)據(jù),這樣就解決了~
特此記錄一下~夏跷!