0

我有一個RecyclerView,當我想刪除一個項目我稱之爲:中的項目,使recyclerview顯示第一項

Tipss.remove(position); //Tipss is my array 
adapter.notifyItemRemoved(position); 
rv.setAdapter(adapter) 
adapter.notifyDataSetChanged(); 

我的問題是,經過我刪除該視圖的RecyclerView去所有回開始。我知道那是因爲rv.setAdapter(adapter)被調用。如果我刪除該行,則下一個視圖(位置之後的那個視圖)將具有已刪除視圖的高度,並且這會破壞佈局。有人可以幫我嗎? rv.setHasFixedSize()不起作用。

+0

了'adapter.notifyItem整點再定義...''所以你不必每次都調用notifyDatasetChanged()''''再次重繪eveything – tyczj

+0

'setHasFixedSize()'不起作用,因爲它們沒有固定的站點或'如果我刪除該行下一個視圖(位置後的那個)將具有被移除的高度,並且只是破壞了佈局「不會發生。嘗試使用'notifyItemRemoved(position);'它應該爲你更新 – zgc7009

回答

2

這兩條線並不需要

rv.setAdapter(adapter) 
adapter.notifyDataSetChanged(); 

如果您recyclerView需要有基於每個排一些條件的不同屬性,請在onBindViewHolder()

+0

但是我應該怎麼做高度調整?我已經在問題中提到,如果我刪除'rv.setAdapter(adapter)',下一個視圖將會刪除視圖的重量。 –

+0

你是否嘗試刪除兩行而不僅僅是rv.setadapter()? –

+0

是的,我嘗試了一切。關於你的建議,如果我刪除一個或兩個適配器,行爲是相同的。 –

相關問題