【发布时间】:2012-07-25 07:01:03
【问题描述】:
我已经使用自定义视图而不是图片实现了我的自定义 Gallery。
参考是http://www.programmingmobile.com/2011/08/android-tutorial-gallery-view-without.html
但是现在我有大约 8 个自定义视图,其中包含带有大量文本的复杂布局。
问题是性能很差,我缓存了视图但是滚动不流畅。使用较新的设备和平板电脑没问题,但是否有一些提示如何为旧设备增加性能?我考虑过制作视图位图,但它们有很多按下/未按下的可绘制对象 + 文本内容变化非常频繁。
只是我的适配器getView是这样的,几乎所有时间它都返回缓存视图,但是滚动不流畅,我可能会渲染视图问题吗?
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View cachedView = cachedViews.get(position);
if (cachedView != null) {
return cachedView;
}
// Else inflate view etc.
}
【问题讨论】:
-
你能发布一些代码吗?我建议使用 convertView 和 ViewHolder。它极大地提高了性能。
-
您不应该尝试自己缓存
Views,因为ListView会自动回收列表项的Views。如果你想提高性能,你应该尝试在你的适配器中实现ViewHolder模型。 -
是的,但这是Gallery,有一个已知错误,它无法回收视图,convertView 对我来说总是为空。
标签: android performance android-layout custom-component