更新RecyclerView隐藏的项目

时间:2018-01-23 14:33:20

标签: java android

我有一个RecyclerView,其中包含可根据背景事件更新的项目列表。

要更新我使用notifyItemChanged的单个项目,列表中的每个项目都有一个精确的itemId标记,因此我可以获得相对位置来更新它们。 代码如下:

for (int position = 0; position <= recyclerView.getChildCount(); position++) {
   final View view = recyclerView.getChildAt(position);
      if (view != null) {
          final String viewTag = view.getTag().toString();
          if (viewTag.equals(itemId)) {
              LinearLayoutManager layoutManager = ((LinearLayoutManager) recyclerView.getLayoutManager());
              final int firstVisiblePosition = layoutManager.findFirstVisibleItemPosition();
              final int realPosition = position + firstVisiblePosition;
              recyclerView.getAdapter().notifyItemChanged(realPosition );
              break;
    }
  }
}

这仅适用于可见项目,因此如果用户滚动列表,则新的可见项目未正确更新。 如果我设置:

holder.setIsRecyclable(false);

一切正常,但我失去了RecyclerView的顺畅性。

有没有办法更新隐藏的项目?

0 个答案:

没有答案