2014-01-15 21 views
0

我有一个线性布局,我添加了几个视图。考虑结果项目的线性布局。有可能有多达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++; 
    } 

这工作,因为它在后台运行,并增加了所有项目。唯一的问题是所有的视图在几秒钟后立即出现。如果他们一旦创建,我就会很喜欢它。

有没有一种方法可以修改此代码,使其按需要工作?我是否以这种错误的方式去做?

谢谢!

回答

2

好像不是一个LinearLayout,你会想,而不是用ListView去。

一个ListView会给你由某种(ArrayList等)的Collection支持元素的滚动列表,你可以随时更新该名单。这有助于您慢慢汇总外部资源的数据。

ListView也做了一些优化,并且只会在屏幕上显示行视图。如果您在LinearLayout中渲染所有150个视图需要花费一些时间,那么ListView也会帮助您。

+0

我相信这可能正是我所期待的。感谢分享信息!我会花一些时间编码,然后可能会回来并接受它。 – PFranchise

相关问题