gpt4 book ai didi

android - 为什么 ViewHolder 模式有效?

转载 作者:太空狗 更新时间:2023-10-29 15:34:02 25 4
gpt4 key购买 nike

今天学习了Android的ArrayAdapter,发现有一种常见的模式是使用ViewHolder来保存Views的引用,而不是每次都调用findViewById。

但是它是如何工作的呢? Adapter 通常用于显示 View(Group) 列表,如果我缓存 View,为什么它们不都引用最旧的?

最佳答案

如果您想获得有关 ViewHolder 工作原理的最佳解释,请查看 Romain Guy 在 youtube 中的 Google I/O 2009 演讲。 ,特别是前 15 分钟。

简而言之,Adapter 充当基础数据和ViewGroup 之间的链接。它会根据需要呈现尽可能多的 View 以填满屏幕。在滚动或任何其他将 View 推出屏幕的事件时,Adapter 将重用该 View,并填充正确的数据,呈现在屏幕上。

getView(int pos, View view, ViewGroup parent) 方法将在任何时候使用正确的 View,无论您的布局如何。我不知道它的内部结构,但我相信如果您有兴趣,可以浏览任何适配器(例如 ArrayAdapter.java)的源代码。
ViewHolder 只是保留一个指向 Views 的指针,由 view.findViewById(int id) 获取。适配器负责返回对应于任何位置的正确数据。

Romain's presentation 的第 11 到 13 张幻灯片将使它比我能写的任何东西都清楚得多。

关于android - 为什么 ViewHolder 模式有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5973917/

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