2010-11-16 51 views
1

我有一個畫廊,在每個視圖中有7 +線性佈局,並且我爲這些佈局中的7個動態設置了背景可繪製,這取決於我從out db中獲取的數據,畫廊等setBackgroundDrawable對多個項目無法正常工作

我有一個for循環,啓動7個線程來獲取數據和獲取所需的信息drawables生成,所有這一切都返回通過一個共同的處理程序,從而獲取每個線性佈局並在它們的每一個上運行setBackgroundDrawable()。

我遇到的問題是,我可以看到我的drawable的構造函數正在運行7次,但draw()僅在其中的1或2個被調用。如果我向右或向左滾動,新視圖也會發生同樣的情況。但是,如果我滾動回到已經繪製的屏幕,所有7個線性佈局的背景都可以正確繪製。

我已經嘗試在線性佈局,他們的父母,畫廊上調用invalidate()和requestLayout(),但無濟於事。

我會發布我的代碼,但它有一個整體,我越過我的手指,我的解釋提供了足夠的背景。我感謝任何幫助

回答

0

我想出的解決方案是計算我啓動它們時的線程數,一旦最後一個返回,就在父佈局上調用invalidate()。每次有人返回時,我都試着調用invalidate(),但總體來看,事情發生的太快了。