我有一个ListView,每个项目都是具有多个视图的自定义布局(包括~445x250的大图像,~40x40的较小图像等)。在滚动时,动画非常不连贯。
有人可以推荐我如何提高效果吗?
我尝试过的一种方法是消除所用图像的透明度。虽然在新项目滚动到视图之前仍然存在明显的延迟,但这确实略有改善。
更新: 这是自定义布局的View heirarchy(对于每个项目) - http://pastie.org/3333903
答案 0 :(得分:3)
查看提供的布局,可能会出现一些可能导致性能问题的事情:
RelativeLayout
/ TableLayout
而不是嵌套LinearLayout
。ListView
的目的 - 如果您的行开始变得复杂,则可能需要查看其他内容以显示此信息。GestureOverlayView
行项,ListView
似乎有点沉重。这有必要吗?考虑到ListView
可以通过触摸滚动,在行项上具有自定义手势可能有点令人困惑。 您还可以尝试使用android:persistentDrawingCache="scrolling"
和ViewHolder模式来提高性能。
如果您下载最新版本的ADT,它还会指导您优化布局。
除了布局优化之外,应该在getView
的{{1}}方法中完成最少的工作。
此外,您可以使用ListAdapter
来利用Android 3.0 +中的硬件。
答案 1 :(得分:0)
您可以使用“列表”视图来使用动态表格布局。它将改善性能。动态表格布局将调整大图像和较小的图像。这对你有帮助。