Android在所有项目中在recyclerview中更改textview而无需重绘整个列表

乔恩

我有一个带有项目列表的recyclerview,每个项目除其他外还有一个与用户保持一定距离的textview。当用户身体四处走动时,我想在不重新绘制列表的情况下更新项目的距离。例如,假设用户站在三角形的中间,点为item1,2,3:

item1 5英尺

item2 10英尺

item3 15英尺

现在用户将2英尺移向了item1-因此更改为:

item1 3英尺

item2 12英尺

item3 17英尺

但我不想重画。换句话说,如果列表中有5000个项目,并且用户向下滚动到项目3150,然后更改了他的位置,则我不想执行诸如notifydatasetchanged之类的操作,该操作将重绘整个列表并向用户显示位置0的所有内容我想改为动态地仅更改列表中每个项目的距离文本,并且就用户而言,一切都相同,并且只有距离发生了变化。

最好的方法是什么?

伊吉特

首先,您不能避免列表重绘,这就是更新UI的工作方式,但是请放心,到处都有缓存来处理小的更改。

关于项目,如果您调用notifyDataSetChangedRecyclerView,将仅重新绑定可见视图。因此,这就是您要支付的费用,适配器的实际大小(示例中为5000)无关紧要。

如果您希望RecyclerView仅更新已更改的视图,则必须调用notifyItemChanged(position)在这种情况下,RecyclerView将仅在更改的项目可见的情况下重新绑定它们。

如果您具有稳定的ID,即使调用notifyDataSetChanged,如果适配器具有稳定的ID,RecyclerView也会onBindViewHolder使用当前表示该位置项目的现有视图持有器进行调用在ViewHolder中保留对您的项目的引用。onBind被调用时,检查它是否是同一个项目,仅更新必要的部分。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

阻止ListView重绘Flutter中的所有项目

来自分类Dev

更新列表中的所有元素而无需循环

来自分类Dev

更新列表中的所有元素而无需循环

来自分类Dev

对模型进行动画处理而无需重绘整个背景图--OPENGL

来自分类Dev

告诉所有者绘制列表框重绘项目的最佳方法?

来自分类Dev

如何从RecyclerView中的所有项目中删除按钮/视图?

来自分类Dev

SQL查询可从某个位置获取在所有项目中工作的员工的列表

来自分类Dev

更改特定列表项的textview颜色,而无需在Android中进行用户交互

来自分类Dev

更改列表中的值而无需循环

来自分类Dev

将向量中的所有元素与列表中的所有元素进行比较,而无需for循环

来自分类Dev

将向量中的所有元素与列表中的所有元素进行比较,而无需for循环

来自分类Dev

从列表中的所有项目中获取特定属性

来自分类Dev

我如何在所有项目中的高品质文本2中搜索文本

来自分类Dev

在巨大的文件中更改标题,而无需重写整个文件

来自分类Dev

`less`打开编辑器,而无需立即在终端中触发重绘

来自分类Dev

VSTS:在所有项目中搜索库参考

来自分类Dev

返回列表中某个元素的所有位置,而无需递归,但使用列表生成器

来自分类Dev

Android Recyclerview项目Textview将不会显示在某些项目中

来自分类Dev

实现android库项目而无需将所有活动归类

来自分类Dev

强制RecyclerView重绘其项目

来自分类Dev

Android重绘有关语言更改的视图

来自分类Dev

如何在我的项目中更改字体粗细,该项目的所有textview具有默认的fontFamily?

来自分类Dev

在Python中以递归方式打印列表而无需更改列表

来自分类Dev

在Python中以递归方式打印列表而无需更改列表

来自分类Dev

在整个表中查找空白单元格,而无需在OR条件下指定所有列名

来自分类Dev

在Android屏幕方向更改中以SQL重绘折线

来自分类Dev

我可以在 Firestore 中更改与某个条件对应的所有文档,而无需先查询所有文档吗?

来自分类Dev

在所有子项目中的所有测试之前在子项目中运行 checkstyles

来自分类Dev

如何在WPF棱镜项目中添加可在所有ViewModel中访问的自定义服务?

Related 相关文章

  1. 1

    阻止ListView重绘Flutter中的所有项目

  2. 2

    更新列表中的所有元素而无需循环

  3. 3

    更新列表中的所有元素而无需循环

  4. 4

    对模型进行动画处理而无需重绘整个背景图--OPENGL

  5. 5

    告诉所有者绘制列表框重绘项目的最佳方法?

  6. 6

    如何从RecyclerView中的所有项目中删除按钮/视图?

  7. 7

    SQL查询可从某个位置获取在所有项目中工作的员工的列表

  8. 8

    更改特定列表项的textview颜色,而无需在Android中进行用户交互

  9. 9

    更改列表中的值而无需循环

  10. 10

    将向量中的所有元素与列表中的所有元素进行比较,而无需for循环

  11. 11

    将向量中的所有元素与列表中的所有元素进行比较,而无需for循环

  12. 12

    从列表中的所有项目中获取特定属性

  13. 13

    我如何在所有项目中的高品质文本2中搜索文本

  14. 14

    在巨大的文件中更改标题,而无需重写整个文件

  15. 15

    `less`打开编辑器,而无需立即在终端中触发重绘

  16. 16

    VSTS:在所有项目中搜索库参考

  17. 17

    返回列表中某个元素的所有位置,而无需递归,但使用列表生成器

  18. 18

    Android Recyclerview项目Textview将不会显示在某些项目中

  19. 19

    实现android库项目而无需将所有活动归类

  20. 20

    强制RecyclerView重绘其项目

  21. 21

    Android重绘有关语言更改的视图

  22. 22

    如何在我的项目中更改字体粗细,该项目的所有textview具有默认的fontFamily?

  23. 23

    在Python中以递归方式打印列表而无需更改列表

  24. 24

    在Python中以递归方式打印列表而无需更改列表

  25. 25

    在整个表中查找空白单元格,而无需在OR条件下指定所有列名

  26. 26

    在Android屏幕方向更改中以SQL重绘折线

  27. 27

    我可以在 Firestore 中更改与某个条件对应的所有文档,而无需先查询所有文档吗?

  28. 28

    在所有子项目中的所有测试之前在子项目中运行 checkstyles

  29. 29

    如何在WPF棱镜项目中添加可在所有ViewModel中访问的自定义服务?

热门标签

归档