我想知道是否有一种方法可以预装Android ListView中的几个视图?
例如,默认情况下,当列表视图项目滚出屏幕时,它将成为转换视图,并将重新装饰为屏幕上的下一个视图。我的问题是,每个listview项目正在从内存中加载一个非常大的图像,如果它在它出现之前就开始加载它会停止滚动。
我想知道是否有一种方法可以指定加载视图的阈值,例如,预加载3个视图而不是1个?
谢谢
答案 0 :(得分:2)
对此有一点不同的方法:
首先,从适配器的getView()
中删除加载操作。此方法应尽可能精简。在后台加载第一批图像并将其传递给适配器。 (例如,存储在List
中)
二。在listView上设置AbsListView.OnScrollListener
,覆盖onScroll()
并计算用户滚动的观看量:int count = firstVisibleItem + visibleItemCount;
。如果此int超过您加载的图像数,则开始显示进度条并在后台线程中加载图像,将它们提供给适配器(添加到List
)。加载完成后,在适配器上调用notifyDataSetChanged()
并完成。
您可以加载任意数量的项目。