2012-04-02 74 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