我用recyclerView的時候設置LayoutManager爲Grid,添加decoration爲Grid,做爲二級列表時,屢次點擊一級列表來跳轉的時候,兩張圖之間的間隙在逐漸變大,後來發現是由於屢次初始化Adaper的緣故。 ide
mWaresAdapter = new WaresAdapter(getContext(), datas); mRecyclerViewWares.setAdapter(mWaresAdapter); mRecyclerViewWares.setLayoutManager(new GridLayoutManager(getContext(), 2)); mRecyclerViewWares.addItemDecoration(new DividerGridItemDecoration(getContext()));
這是有bug的代碼,每次都建立adapter致使間隙變大spa
解決辦法code
if(mWaresAdapter == null) { mWaresAdapter = new WaresAdapter(getContext(), datas); mRecyclerViewWares.setAdapter(mWaresAdapter) mRecyclerViewWares.setLayoutManager(new GridLayoutManager(getContext(), 2)); mRecyclerViewWares.addItemDecoration(new DividerGridItemDecoration(getContext())); }else{ mWaresAdapter.clearData(); mWaresAdapter.addData(datas); }