【问题标题】:Recyclerview refreshing items without even calling notifyDataSetChanged()Recyclerview 刷新项目甚至无需调用 notifyDataSetChanged()
【发布时间】:2020-05-17 19:26:59
【问题描述】:

让我解释一下发生了什么。我有一个片段,在它的 onCreateView() 中,我将适配器设置为没有任何项目的 recyclerview..

 @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        downloadsList = new ArrayList<>();
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
        downloadsRecyclerview.setLayoutManager(linearLayoutManager);
        downloadsList.clear();
        downloadAdapter = new DownloadAdapter(context, downloadsList);
        downloadsRecyclerview.setAdapter(downloadAdapter);
       }

现在奇怪的部分是每当我将项目添加到downloadsList(基本上是一个 ArrayList )时,我的 recyclerview 就会使用 downloadsList 上的可用内容进行更新。我什至没有调用 notifyDataSetChanged() 或再次设置新适配器...任何帮助..

【问题讨论】:

  • 但在将其设置为适配器后,我仍然可以向 downloadsList 添加任何内容..
  • 显示您添加项目的代码,以及您的适配器代码。

标签: android android-fragments android-recyclerview


【解决方案1】:

如果您不想使用notifyDataSetChanged() 重新加载整个RecyclerView,那么只需添加notifyItemInserted()

当您在downloadsList 中添加值时,只需调用

downloadAdapter.notifyItemInserted(downloadsList.size()-1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多