我在理解 setHasFixedSize()
时遇到了一些麻烦。我知道当 RecyclerView
的大小没有改变时,它用于优化,来自文档。
那是什么意思呢?在最常见的情况下, ListView
几乎总是具有固定大小。在什么情况下它不是固定大小?这是否意味着它在屏幕上占据的实际空间随着内容的增长而增长?
原文由 SIr Codealot 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在理解 setHasFixedSize()
时遇到了一些麻烦。我知道当 RecyclerView
的大小没有改变时,它用于优化,来自文档。
那是什么意思呢?在最常见的情况下, ListView
几乎总是具有固定大小。在什么情况下它不是固定大小?这是否意味着它在屏幕上占据的实际空间随着内容的增长而增长?
原文由 SIr Codealot 发布,翻译遵循 CC BY-SA 4.0 许可协议
setHasFixedSize() 指的是itemView的大小,也可以说是视图的大小,所以跟list或者ArrayList没什么关系,如果你想在adapter的不同位置改变视图的高宽,那就放吧假的
原文由 Himanshu Yadav Anshu 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.3k 阅读✓ 已解决
2 回答2.6k 阅读
2 回答1.7k 阅读
1 回答2.1k 阅读
1 回答1.1k 阅读
1 回答1.3k 阅读
1.3k 阅读
RecyclerView 的一个 非常 简化的版本有:
此链接 描述了为什么调用
requestLayout
可能很昂贵。基本上,每当插入、移动或移除项目时,RecyclerView 的大小(宽度和高度)可能会发生变化,进而视图层次结构中任何其他视图的大小可能会发生变化。如果经常添加或删除项目,这尤其麻烦。当更改适配器的内容不会更改其高度或宽度时,通过将
setHasFixedSize
设置为 true 来避免不必要的布局传递。更新: JavaDoc 已更新以更好地描述该方法的实际作用。