我在运行时使用大量数据创建布局,并将这些布局添加到滚动视图中。视图创建后,工作正常。
问题在于,数据非常繁重,创建屏幕需要一分多钟,用户体验不是很好。
我想只为可见的屏幕部分创建布局,剩下的我可以在滚动滚动视图时创建。
请问这怎么可能?此外,如果有人有更好的方法,请建议。
答案 0 :(得分:1)
您可以从每次创建一定数量的视图开始[1],但如果有更多视图“待定”,则始终在列表末尾添加虚拟“加载”视图。一旦用户在列表末尾滚动ScrollView,就开始在后台线程上加载下一部分视图,并在构建完成后立即删除虚拟加载视图,并将新视图添加到容器中。
另一种方法是在上一组完成后立即开始加载下一组视图,但这可能会浪费资源。
更好的方法是将所描述的这两种方法结合起来,并且如果用户完成了一半滚动到最后,则总是创建下一组视图
您可以查看滚动视图滚动到底部的方式:Android: Detecting When ScrollView Hits Bottom
[1]由于您关心UX,我建议行数应取决于行的高度和设备最大高度。即小型设备上有4个视图,中型6个视图,大型视图10个。