NestedScrollView嵌套RecyclerView導致的UI加載慢的問題
原因
1.復現這個問題需要RecyclerView有大量item數據
2.這個問題是因為NestedScrollView需要反復測量RecyclerView與item的高寬導致的。
3.另一個方面(個人猜測沒有驗證過),NestedScrollView反復測量后導致RecyclerView又需要反復測量然后在重新刷新數據、
解決辦法
其實很簡單,將不是RecyclerView的View全部搬入RecyclerView的適配器一起成為一個列表顯示。有些人可能是想偷懶,不想弄得這么復雜,用NestedScrollView嵌套RecyclerView解決問題。在少量數據的情況下我是支持這種玩法的,因為會讓View的結構更簡單,反復幾次刷新測量並不會開銷太大性能。
當然,還有人是壓根沒有深入了解過RecyclerView。這個在滾動列表界面里十分萬能,各種不同的item的View都能塞入RecyclerView里一起處理。處理各種各樣的item的View關鍵點是理解好以下RecyclerView.Adapter里的重寫方法:
public int getItemViewType(int position)
END