2012-04-12 33 views
8

我試圖重新ListView(和AbsListView)邏輯,可欣賞回收利用。 我需要這個,但我們可以說這只是爲了理解Android邏輯。只有重新佈局的孩子,而不是所有的樹

假設我的孩子項目是相同的(相同的佈局),使用固定高度RelativeLayout

在滾動過程中,我重新使用ghost子視圖併爲當前項設置屬性。 它工作正常,因爲我使用View.offsetTopAndBottom()invalidate()而不是在滾動期間請求佈局以進行優化。

我的問題是更新孩子(RelativeLayout)。

取決於項目,我想隱藏或關於該項目顯示ImageView。爲此,我只使用iconImage.setVisibility(GONE)iconImage.setVisibility(VISIBLE)

由於我堵requestLayout,這似乎是setVisibility()不能正常工作。

如果我使用requestLayout,所有的樹將測量和佈局本身,它不是一個滾動的用戶體驗的好方法。

有沒有一種方法只有請求佈局回收子項目?

回答

-2

您需要通知用的觀點改變了你的ListView這麼叫notifyDataSetChanged();從Uithread這樣的:

 final ArrayAdapter adapter = ((ArrayAdapter) getListAdapter()); 
    runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      adapter.notifyDataSetChanged(); 
     } 
    }); 
相關問題