解決ScrollView巢狀RecyclerView滑動不流暢,Scrollview巢狀Recyclerview的坑
阿新 • • 發佈:2019-02-07
谷歌不建議使用ScrollView巢狀RecyclerView,但是有時候會有這種情況。每當遇到這種情況就導致RecyclerView滑動很不流暢。解決方法如下:
recyclerView.setLayoutManager(new GridLayoutManager(mContext, 1) {
@Override
public boolean canScrollVertically() {
return false;
}
});
坑一:
我一直用以上方法,直到有一天,我資料差不多有200個,就載入很慢,要等個1.2秒才能加載出來,我就蒙了,於是看別人寫的很快,我把程式碼複製到我這裡還是慢,但是執行別人程式碼就是載入快 哼,於是我就懷疑佈局,我把Scrollview去掉果然快了好多。那既要Recyclerview又要用ScrollView,怎麼辦?用NestedScrollView來代替ScrollView.
然後給Recyclerview新增屬性:recyclerview.setNestedScrollingEnabled(false);
坑二:
用ScrollView巢狀Recyclerview,我刪除一條資料刷全部:adapter.notifyDataSetChanged();就很慢,然後用想到
只刪除單個:
adapter.removeData(position);
adapter.notifyItemRemoved(position);
adapter.notifyItemRangeChanged(position,netSerialList.size());
這是發現刪除底部的資料,資料是刪除了,但是它的位置還在就留了很多空白,也是巢狀造成的,ScrollView無法計算高度
從熱愛ScrollView到放棄踩了3個坑