gpt4 book ai didi

android - DiffUtil 和 notifyItemInserted 之间的区别

转载 作者:行者123 更新时间:2023-12-05 00:21:15 31 4
gpt4 key购买 nike

我对 Android 还很陌生,目前正在开发我的第一个基于 RecyclerView 的严肃应用程序。当我插入或更新现有行时,我注意到我的应用程序中有一些有问题的行为:即使我在添加或 notifyItemRemoved(position) 的情况下执行了 notifyItemInserted(position),添加/修改的行也不能完全正确显示和 notifyItemInserted(position) 在发生变化的情况下。在研究这一点时,我第一次遇到了 DiffUtil,并发现强烈建议将它与 RecyclerView 一起使用。

我收集到当人们处理适配器中的行/记录范围时,管理 notifyXXX 方法很乏味,但我只是从我的 ArrayList 中添加、更新或删除单个行/记录。使用 DiffUtil 而不是 notifyXXX 对我有什么好处,或者 DiffUtil 真的只在处理行组时有用吗?显然有更多的代码要使用 DiffUtil 编写,并且执行它还涉及一些开销。

最佳答案

Is there any advantage for me in using DiffUtil instead of notifyXXX



简短的回答:没有。

or is DiffUtil really only helpful when working with groups of rows?



什么 DiffUtil做的是获取两个“之前”和“之后”列表并为您计算所有各种 notifyItemInserted()/删除/更改了您必须调用的电话。如果您知道只需要进行这些调用之一,则无需执行工作来实现 DiffUtil.Callback .

There's obviously more code to write with DiffUtil



这是不打扰的主要原因。这可能是一个很好的练习,但最好保持简单。

and there is also some overhead involved in executing it.



除非你能证明这是一个问题,否则我不会担心这个。在大多数情况下,我们谈论的是纳秒。

关于android - DiffUtil 和 notifyItemInserted 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51712284/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com