2010-11-04 88 views
0

在我审查和原型设计我的android项目时,我注意到有一个视图具有非常自定义的项目列表。我计算出了大部分我打算使用的工具,但我需要一些建议。为每个列表项目创建自定义视图的最佳方式

我有一个项目列表,其中可以包含照片,一些文字在右边,一个图像在底部和下面的文字。非常困惑,我知道。这些中的每一个都可能出现在一个项目中。唯一会一直存在的就是标题。

所以我的问题 - 什么是创建每个自定义列表项目视图的最佳方式?我想我必须使用这个getView来创建每个视图。但是在创建每个视图时,最好是1)动态创建一个视图并添加一个图像(例如,如果存在),或者2)创建一个包含所有可能元素的xml文件并根据项目隐藏它们?

回答

3

在性能#2而言是更好,因为你将能够重复使用由ListView控件提供给您的适配器的getView()参数的convertView。要允许平滑的ListView滚动,您必须在getView()调用期间避免任何View创建。

您可以在this sample from the Developer Guide中找到getView()的高效实现。有2个重要的点:

  • 重用convertView时可用
  • 使用连接到View一个ViewHolder以避免必须找到getView()再次你的子视图在每次调用
+0

你有没有例子?无论如何,我打算做#2,但现在我很感兴趣,因为我认为一旦你创建了一个视图,你就不能重用它。任何代码示例都会很棒。 – 2010-11-04 22:48:15

0

我会去#2。您可以制作一个包含所有项目的xml布局,然后编写一个列表适配器,您可以根据需要隐藏和显示项目。这样,如果你需要改变他的布局,你可以调整xml。

+0

谢谢,这就是我所倾向的。使用getView似乎是正确的解决方案,然后对吗? – 2010-11-04 22:28:10

+0

是的。那就对了。 – CaseyB 2010-11-05 03:50:05

相关问题