2016-05-31 175 views
4

後更改大小我有一個RecyclerView如下面的圖像呈現:RecyclerView項目刷新

RecyclerView

這是此RecyclerView設置代碼:

RecyclerView.LayoutManager layoutManager = new GridLayoutManager(this, 2); 
dataRecyclerView.setLayoutManager(layoutManager); 
dataRecyclerView.addItemDecoration(new GridSpacingItemDecoration(...); 
dataRecyclerView.setItemAnimator(new DefaultItemAnimator()); 

開始一個新的活動,其中後我更新RecyclerView的選定項目,RecyclerView重新填充新數據以反映新的更改,但我得到以下結果:

Result 1

當我向下滾動,我得到這個差距:

Result 2

我試圖刷新後但無濟於事調用RecyclerView#invalidate()#invalidateItemDecorations()#requestLayout(); &我也沒有撥打RecyclerView上的setHasFixedSize(true)

究竟是什麼問題?如何調整子項目的大小以便在刷新後精確地包裝其內容?

(PS:我想而不做任何改變&什麼都沒有發生,這證明我的理論是,問題出現,只有當一個子項的高度的變化清爽型)

+0

份額適配器 – Alexander

+0

的代碼發佈您的適配器和XML代碼適配器... –

+0

適配器的代碼是有點長,它延伸的幾個泛型類。但綁定過程非常正常。 –

回答

1

這是相當晚了,但我也遇到過問題。這對那些仍然有相同錯誤的人可能會有所幫助。

recyclerView.addItemDecoration(new SpacesItemDecoration(8));

這條線被稱爲每次recyclerview被更新,併爲使recyclerview項目越來越小:

在我的情況下,如果有任何項目裝修recyclerview溶液檢查。希望它有助於其他。

編碼快樂, 巴基

+0

謝謝你的「遲到」建議哈哈,我目前無法嘗試這種修復方法,但我一定會牢記在心。謝謝 ! –