我理解Viewholder pattern的想法和用法,但我仍然有一个问题:
假设我们在视图中有一个TextView,并显示10个项目(“item0,item1 ....”)。
如果我调用findViewById
一次,据我所知我有一个TextView的对象。 因此,首先调用getView我为视图充气,找到参考并设置文本“item0”。
在第二次调用时,我获得相同的TextView并将文本“item1”设置为相同的TextView。
为什么第0项文字不变?
背景中是否有任何克隆?Android Viewholder实现
1
A
回答
1
Is there any cloning in the background?
的Android预分配的若干意见是足以填满其中正在运行的应用程序(的景色的游泳池)装置的屏幕,从内容透视相同但不同于参考透视
1
假设您在适配器类中实现了ViewHolder,并且在getView()方法中使用了持有者,唯一可以肯定的是TextView在您的情况下描述了父结构的一个槽(例如ListView) 。一旦你定义了一个xml中的插槽,这是从你的适配器充气,没有克隆或类似的东西。
根据Google Documentation持有人的想法描述为:
你的代码 的ListView的滚动,这会降低性能期间可能调用findViewById()频繁。即使适配器 返回回收的充气视图,您仍然需要查找 元素并进行更新。围绕重复使用findViewById() 的方法是使用“视图持有者”设计模式。
ViewHolder对象将布局中标记为 的每个组件视图存储,因此您可以立即访问它们而不需要重复查找它们。首先,你需要创建一个类到 保持你的确切的一套意见。
有没有克隆,只有视图的可重用性
相关问题
- 1. ViewHolder的实现和使用
- 2. 什么是实现Viewholder设计模式的最佳方式。
- 3. android - ViewHolder ImageView随机加载
- 4. 在ViewHolder中的kotlin-android-extensions
- 5. 的Android Execption ViewHolder不能转换到另一个Viewholder
- 6. 如何在回收视图中为自定义ViewHolder实现OnClickListener?
- 7. 实现ScrollView Android?
- 8. Android setonitemclicklistener实现
- 9. 实现与Android
- 10. Android ZXing实现
- 11. Android Widget实现
- 12. Android MVP实现
- 13. MVP Android实现
- 14. RecyclerView与ViewHolder模式
- 15. 来自RecyclerView的Android ViewHolder参数#onCreateViewHolder differents
- 16. Android如果在ViewHolder中声明
- 17. 的ListView ViewHolder组件返回空的Android
- 18. Android中的“ViewHolder”类的问题
- 19. Android的碎片和RecyclerView,ViewHolder,适配器
- 20. 在ViewHolder Android的数据绑定与BaseViewHolder
- 21. 从ViewHolder访问菜单项 - android
- 22. FirebaseRecyclerAdapter multiple viewHolder
- 23. 增强现实 - Android
- 24. Android拖放实现
- 25. 实现在Android中
- 26. Android - 实现差异
- 27. Android Studio&libGDX - android.os。*无法实现(所有android无法实现)
- 28. ViewHolder on multiple inflater
- 29. 使用ViewHolder
- 30. 点击在ViewHolder