2012-11-16 82 views
1

你好我試圖建立像加新聞的UI,兩個在同一時間UI更新

首先嚐試: 我試圖用的ListView爲垂直視圖和每個新聞信源是一個水平的ListView 但問題是「行再利用」,列表視圖重用的意見,這讓我的應用程序緩慢,

第二次嘗試: 我建立使用大量佈局,主要滾動視圖與水平滾動視圖, 自定義UI後,認爲建造它是非常光滑的,而是問題在於UI需要10-30秒才能建成,並且在建築過程之前該活動處於黑暗的視野

所以對我來說沒關係,但是我需要顯示對話框顯示「Loading Ui」,但是我不能顯示它, 因爲在主線程中正在處理的構建過程,並且對話框也會在主線程中顯示,

那麼該如何實現呢?!

我試圖用處理,線程,但

感謝


更新我得到了Looper.prepare錯誤:

我與ListView的問題是:

每次我滾動顯示的新行,就像第一次一樣,所以,我正在使用帶有進度條的延遲加載圖像,每次顯示所顯示的進度條並等待你NTI從SD載入圖像,它需要1秒,但問題是1秒,100圖像是100秒,

因此,如果這100秒只採取一次,那麼所有滾動將工作順利,所以如果有任何方式來停止resviewView這將是解決方案 - 我在iphone中使用這種解決方案,它的工作 -

+0

你應該使用的是異步任務類。無論如何,就像a.ch所說的,ListView是一個更好的選擇。當你嘗試並加載大量的佈局時,會發生什麼......未知量的圖像..你會遇到內存問題,性能非常低。根據需要,ListView隨時加載,保持內存不變,並初始化時間。但是,是的,每次你滾動它需要加載新的項目。考慮讓這個領域更快。 – Doomsknight

+0

完全同意你的看法,除了一件事:'AsyncTask'在這裏不會做,因爲@Yahia的「第二次嘗試」中的主要負載發生在膨脹的視圖層次結構上,而後者無法在後臺線程上運行。 –

+0

我內存沒有問題,我的圖像小1 kb,但問題是從sd打開圖像的過程,這是1秒延遲 – Yahia

回答

1

你可能會嘗試在調用setContentView(..)之前在你的onCreate(..)顯示微調,但這不會是一個很好的解決方案,因爲您可能會遇到其他問題,例如不同設備上的OOM。

我建議你給ListView第二次機會,這是一個非常好的小部件,但你需要正確使用它。並且「行重用」使得它更快,實際上,正確使用時(不是每次使用ViewHolder-pattern調用getView(..)時都會擴展新視圖)。

+0

檢查我的更新 – Yahia