【发布时间】:2016-02-20 17:41:07
【问题描述】:
所以我有一个RecyclerView 的活动,我想通过按下活动中具有onClickListener() 的按钮来更改RecyclerView 中每个项目的TextView。
我想知道在性能方面什么更好:
- 使用
notifyDataSetChanged。 - 使用条件循环,例如 int i 小于
List.size(),其中notifyItemChanged会被调用几次。
在这两种情况下,我都会在 RecyclerView 适配器中创建布尔变量,onBindViewHolder 使用它来了解如何更新项目。默认情况下它是假的,点击按钮后它变成真,所以onBindViewHolder 以不同的方式更新项目。
我也想知道这种方法是否合适。
【问题讨论】:
-
notifyDataSetChanged将重绘可见视图。如果我正确理解您的要求,我会选择那个。 -
您是否查看过 RecyclerView 代码并查看
notifyDataSetChanged中发生了什么?仅基于名称(而不是专业知识)听起来就像您想要的那样,因为您要立即重新验证整个数据集,而不是在单个项目上调用它,除非您要更改特定项目,否则这似乎很乏味。 -
@McAdam331 我的 RecyclerView 的项目是 CardView,里面有 TextView。我想一次更改所有可见卡片中的 TextView。
标签: android android-recyclerview android-viewholder