如何以良好的性能扩展自定义网格?

时间:2012-06-29 12:57:50

标签: android gridview custom-controls

我需要一个具有不同高度的行的GridView。仅适用于行,不适用于行内的项目。连续的项目具有相同的高度。

我已经尝试用Android的GridView做到这一点,但有些奇怪的事情。当向上和向下滚动时网格会扭曲,在某些时候,当向上滚动时,它会消失。如果我将所有行放在相同的高度上,它会起作用,但只要它们有点不同,就会出现问题。

所以我似乎必须制作一个自定义视图。它必须具有非常好的性能和低内存使用率。足以扩展,例如,相对布局,并将我的所有项目放在一定的左上边距和左边距?或者扩展View并直接绘制到画布?还是Scroller?

嵌入式问题:这个,(可能取决于我是否扩展了一些布局或直接查看),设法仅加载屏幕上显示的内容(列表很长,我不希望所有对象都在记忆一下)或者我必须自己实施吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我认为你不能做到这一点并获得“良好的表现”。让Android高效的是它回收了视图。由于行与行之间的行高不同,我不知道如何以任何有效的方式(或者根本)回收视图。

我想这取决于行高度差异是否已知/可知,以及会有多少行,如果它们处于可预测的任何模式中,那么您可以设置自定义适配器来处理视图回收。

如果您可以确定上述内容,那么扩展适配器并自行处理视图回收可能就是答案。