我們有一個數據驅動的活動,它構造了一個大型的按鈕式組件(通常爲100個),並將它們置於Scrollable中。每個按鈕都從資源中膨脹並基於RelativeLayout。該按鈕有兩個文本視圖,兩個圖像視圖 - 均來自資源 - 並具有9補丁的背景。應對Android上的複雜佈局
圖像視圖的大小,位置,文本和配置都是從數據庫查詢中驅動的。
不幸的是,這需要2-3秒的時間在HTC Desire上進行佈局,在HTC San Francisco或HTC Sapphire上進行3-5秒。
初始佈局完成後,視圖執行得很漂亮。
我們已經嘗試了一些它沒有什麼區別策略:
- 時間的數據庫查詢 - 這不是延遲的顯著部分。
- 緩存按鈕,減少佈局膨脹量。
- 在「實時」視圖層次結構之外構建視圖的子樹,然後在完成時連接它。
- 在另一個線程上執行相同操作,但將子樹連接到UI線程上的活動。
我們有一個不確定的進度指示器(微調器/跳動器),它在查詢在另一個線程上運行時旋轉,但在佈局開始時凍結。
所以,我的問題是這些:
- 我怎樣才能使意見的佈局似乎更加敏感或
- 我怎樣才能避免thobber鎖定了,而佈局發生
謝謝。
編輯
滾輪被設置爲水平和垂直滾動。所以我們有一個網格,屏幕是一個視口。
這使得使用內置ListView(乍一看)不適合該任務。
我用它來改善響應性http://stackoverflow.com/questions/2293488/improve-listview-efficiency-when-loading-images-from-sd-into-the-listview – GPSmaster 2011-05-25 22:32:13