Lai*_*uan 2 android design-patterns view
我今天学习了Android的ArrayAdapter,发现有一个commom模式,它使用ViewHolder来保存Views的引用,而不是每次调用findViewById.
但它是如何工作的?适配器通常用于显示View(Group)的列表,如果我缓存View,为什么它们都没有引用最旧的?
Ale*_*dam 13
如果您想要了解ViewHolder如何工作的最佳解释,请查看Romain Guy在youtube上的Google I/O 2009演讲,特别是前15分钟.
简而言之,Adapter函数作为底层数据与之间的联系ViewGroup.它将View根据需要渲染尽可能多的s来填充屏幕.在滚动或任何其他推动a View离开屏幕的事件时,Adapter将重复使用View填充了正确数据的事件在屏幕上呈现.
无论您的布局如何,该getView(int pos, View view, ViewGroup parent)方法都将View在任何时候使用该权限.我不知道这个的内部,但我相信你可以浏览任何适配器的源代码(如ArrayAdapter.java),如果你有兴趣的话.
本ViewHolder只是不断的指针Views由获得view.findViewById(int id).适配器负责返回与任何位置相对应的正确数据.
Romain演示的幻灯片11到13 将比我能写的任何东西都清晰得多.
| 归档时间: |
|
| 查看次数: |
3702 次 |
| 最近记录: |