2017-04-06 795 views
0

我有一个recyclerView,其行具有视图,该视图在单击时将针对该行位置禁用。如何在刷新适配器后将recyclerView位置项目视图重置为原始状态

的问题是在我更新适配器是这样的:

adapterData.clear(); 
    adapterData.addAll(refreshedAdapterData); 
    notifyDataSetChanged(); 

...刷新数据后,在先前的回收位置残疾人的看法仍然保持,即使数据被刷新禁用。 如何在刷新适配器数据后将视图重置为原始状态。

+0

这些视图模型与回收站视图相关的究竟是什么 – Remario

+0

在此处发布适当的代码 –

回答

0

使用下面的代码。

adapterData.clear(); 
adapterData.addAll(refreshedAdapterData); 

adapterData.notifyDataSetChanged(); 

OR

recyclerView.invalidate(); 
1

当你调用notifyDataSetChanged每个视图的onBindViewHolder方法被调用。

@Override 
public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, final int position) { 
      if (refreshedAdapterData.get(position).isInDefaultState()) { 
       //set Default View Values 
      } else { 
       //the code you already have 
      } 

     } 
+0

我已经通过参考您的评论解决了问题。谢谢。 –

+0

@Sbruce如果这是帮助您解决问题的答案,将它标记为答案也是公平的:) –

0

我已经把一个条件语句onBindViewHolder方法中指示所有的位置,如果数据符合对所要求的条件重置禁用的观点解决了这个:所以,你可以在你的适配器方法onBindViewHolder添加这样的事刷新数据。

@Christoph迈尔,谢谢你的意见。它帮助我指出了正确的方向。

相关问题