我有一个线性布局,我正在添加几个视图。考虑结果项的线性布局。最多可能有150个结果项。生成每个视图需要一点点,所以我希望它们在可用时显示出来。
这是我目前的代码:
for (final Dealership loc: locations) {
final int x = resultNumber;
view.post(new Runnable(){
public void run(){
if(loc != null && parent != null && currentLocation != null) {
View v = getResultView(x, loc, parent, currentLocation);
v.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
if(parentLayout != null) {
parentLayout.addView(v);
}
}
}
});
resultNumber++;
}
这适用于它在后台运行并添加所有项目。唯一的问题是所有视图在几秒钟后立即出现。如果它们一旦出现就会出现,我真的很喜欢它。
有没有办法可以修改此代码,使其按预期工作?我是以错误的方式解决这个问题吗?
谢谢!
答案 0 :(得分:2)
似乎不是LinearLayout
,而是使用 ListView 。
ListView
会为您提供由某种Collection
支持的元素滚动列表(Array
,List
等),您可以即时更新该列表。当您从外部资源缓慢聚合数据时,这很有用。
ListView
也会在引擎盖下做一些优化,并且只会在屏幕上显示行视图时呈现它们。如果您需要花费一些时间来渲染LinearLayout
中的所有150个观看次数,那么ListView
也可以为您提供帮助。