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

是的,我尝试了一切。关于你的建议,如果我删除一个或两个适配器,行为是相同的。 –

相关问题