如果自定义列表视图行内容是动态的,如何使用视图持有者?
Posted
技术标签:
【中文标题】如果自定义列表视图行内容是动态的,如何使用视图持有者?【英文标题】:how to use view holder if custom listview row content are dynamic? 【发布时间】:2014-12-29 19:02:47 【问题描述】:我已经使用基本适配器创建自定义列表视图到动态行 content.row 内容以编程方式创建(复选框、文本视图),它们包含在布局中。 滚动时间的问题他们很慢,因为不使用 视图持有人。我如何使用视图持有者这种类型的自定义列表视图? 有什么解决方案或建议吗?
关注此列表..
【问题讨论】:
每行需要多少个最大动态视图?如果固定为 3 或 4,那么您可以在适配器视图中创建它并根据需要设置可见性。 可能是连续创建视图的数量,最初我们无法预测会创建多少视图。 使用表格布局并添加行数 【参考方案1】:ViewHolder
在重复相同视图时用于列表视图。假设您的活动中一次总共可见 6 个项目。然后使用 viewholder 模式 6+2=8 个视图一次会被膨胀。顶部多一个,底部多一个,以提供平滑的滚动效果。现在假设执行了向上滚动操作,并且第 8 位的 item 是可见的,第 0 位的 item 将被回收并作为第 9 个 item 附加到列表的末尾。如果视图不同,则无法执行此回收。检查https://www.youtube.com/watch?v=wDBM6wVEO70
对于您的问题,您可以假设可能有 5 个最大值,然后您可以使用内部的 10 个动态视图创建适配器视图并根据需要设置可见性。
另一个选项是使用LinearLayout
并动态添加每一行,但这不会带来太多优化。
【讨论】:
以上是关于如果自定义列表视图行内容是动态的,如何使用视图持有者?的主要内容,如果未能解决你的问题,请参考以下文章