我正在使用Gmail的Android开发人员团队方法分析我的方法,以便优化绘图时间,并且通常可以创建更高效的应用。
下面是listview中的层次结构。这很简单。 ExpandableListContentItem扩展了一个具有3个视图的相对布局:
以下屏幕截图是Gmail应用中的listview如何工作(SwipableListView)。有趣的是,只有一个View(我猜aY
扩展了ConvertationItemView),实际上比我的复杂得多(我看到3个文本,1个照片,1个图标/按钮)。 / p>
我认为这是一种更轻量级的渲染方法,是吗?即使我需要更多的时间来为每个listview项目编写最佳的单一自定义视图,它还是值得提供它的性能吗?
最后,到目前为止,我所知道的唯一方法是在另一个内部扩展现有视图,这基本上是第一种方法。我想现在我的挑战是将relativeLayout和3个嵌套视图合并为一个。这是对的吗?
PS:欢迎使用开源代码示例。
答案 0 :(得分:1)
I would assume that this is a more lightweight approach to get rendered, is it so?
是的。在考虑层次结构时,每个父级都会测量其维度并将其从上到下传递给子视图。减少图层和更平坦的视图将节省时间。
Even if it takes me more time to code an optimal single customview per listview item it is worth the performance that it offers?
取决于您正在开发的应用程序。取决于列表中的项目数量以及获取方式。当您滚动列表时,如果您认为它很慢,您可能想尝试这种方法。我在以前的应用程序上试过它,我可以看到它的不同。
I guess now my challenge would be to combine that relativeLayout with the 3 nested views into one.
我不知道你将它们组合起来是什么意思,但Gmail的做法是他们拥有自定义视图。您可以创建自定义视图。
除此之外,另一件需要考虑的事情是透支。它与平面视图一样重要。如果您从开发人员工具激活 GPU Overdraw 并查看Gmail应用行,您会看到0透支。确保您的代码没有透支。
如需进一步阅读,我建议您查看以下博客: