为了理解我将要讨论的结构,首先看一下这个示例图片:
我需要在一个片段中显示多个ListView。问题是打开给定的片段时,给视图充气需要花费很多时间,因为:
每个ListView为自己充实3-5个项目,因为这两个ListView都没有废料视图。
因此片段会立即膨胀相同视图的10-30个实例,这很容易造成200-300ms长的口吃,这远远不能接受(片段有一个显示和隐藏动画)。
我的问题是,有没有办法加快通货膨胀(除了使用ViewHolders,简化层次结构,以及通常的事情)。由于视图属于同一类型,因此可能存在相同的全局Recycler ,其中存储了剪贴视图,并且比屏幕的生命周期更长,这导致在创建ListView时具有剪贴视图(查看ListView源代码,需要大量的编码和对内部的理解。
由于相当多的应用程序具有相似的结构,我很好奇他们如何解决(如果可能的话)通胀性能问题。
答案 0 :(得分:0)
您可以使用自定义视图作为列表项来减少实例化对象的数量。因此,如果您使用1个图像视图和3-4个文本视图作为列表项,则可以使用自定义将计数减少到1视图...
如果设计允许,您可以将整个6个图像作为一个自定义视图。