2012-04-02 77 views
4

在我的主Activity中,我使用ListView列出一些數據,並確保將所有I/O密集型工作(加載縮略圖)卸載到AsyncTask。事實上,在Galaxy Nexus上運行時,我的ListAdapter.getView(int position,View convertView,ViewGroup parent)僅需要0〜1 ms就可以執行。然而,滾動瀏覽Galaxy Nexus上的ListView速度非常慢,感覺屏幕運行速度可能爲10 FPS,實際上感覺比運行Android 2.3.6的Nexus One慢在Android上的糟糕的ListView性能ICS

如果有人有關於如何使ListView滾動更順利的一些性能提示,無論是在ICS或ICS之前的設備上,我都會非常感激。

+0

顯示您的代碼。 – Snicolas 2012-04-02 07:14:44

+0

同樣的問題在這裏,只是一個正常的ListView與圖像作爲backgrouns與透明度和cacheColorHint設置爲透明。在ICS前設備上沒有真正的性能問題,但對Galaxy Nexus確實存在問題。 – 2012-04-04 13:06:57

+0

是的!我基本上與你設置相同,圖像爲ListView背景,其中包含ImageViews和TextViews,並將cacheColorHint設置爲透明。表演只是......可恥的。 – Kai 2012-04-05 02:26:18

回答

2

硬件加速我有同樣的問題和你一樣,我的解決辦法是添加機器人:layerType =「軟件」在佈局文件的ListView,它僅僅關閉硬件加速,又不失全全息主題。 您可以在這裏查看我的代碼:https://github.com/mariotaku/twidere 該文件是res/layout/refreshable_list.xml

+0

性能稍微好一些,但與Android 2.3.6的Nexus One上運行的應用程序一樣「平滑」。在Galaxy Nexus雙核和他們聲稱擁有的ICS性能調整之間,這是非常令人失望的。 – Kai 2012-04-17 02:31:02

+0

我現在不能使用電腦,但你可以嘗試將android:layerType設置爲無(我沒有嘗試過,這可能沒有幫助),另外,我發現所有可滾動的視圖都降低了它們的速度和性能。我們唯一能做的就是優化我們的代碼,比如減少視圖深度,使視圖變化不那麼頻繁等。我將嘗試改進項目中的性能,您可能會在我未來的變化中找到更多解決方案。 – mariotaku 2012-04-17 02:50:34

0

嘗試啓用在清單

+1

它啓用,沒有幫助。 – Kai 2012-04-02 08:20:41

+0

嘗試禁用硬件加速。禁用HA使listview滾動更平滑。 – ethangao 2013-06-03 14:49:45