2014-01-15 19 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

相關問題