我有一个ListView,其中listview的每一行都包含大约10个ImageButton。这些按钮大多数具有可见性=消失,并且仅在极少数情况下显示。我想知道是否值得用ViewStubs替换这些ImageButton,以避免一直为列表视图的所有行加载它们(及其包含的图像)。然后将它们的可见性再次设置为“消失”,因此我不确定加载它们会产生什么影响。它们的图像实际上是否已加载?
请注意,我在说的是将8个ImageButton替换为8个ViewStub,而不是1个
干杯
编辑:只是注意到Endzeit对我之前的类似方向发表了评论。
我将从围绕带有和不带有视图的膨胀代码进行一些基准测试开始-只需注释掉适配器代码,这样它就不会尝试访问不存在的视图。
如果从布局中删除视图确实带来了您认为必要的改进,并且由于您说视图仅在罕见的情况下存在,而无论如何都要在适配器中进行检查,则不要夸大这些视图甚至使用查看存根,在代码中创建它们,并根据需要添加/删除它们(使用查看器引用它们)。
您甚至可以更进一步,并懒惰地创建这些视图,类似于延迟加载图像,但是只有在再次运行一些基准测试之后,我才能这样做。
我将使用ViewStubs加载复杂的布局,而不是简单的ImageButtons。
编辑2:
查看ViewStub的inflate命令,它在需要可见时会执行的操作,您可以看到它使给定的布局无效,然后将其添加到父布局中-由于您添加的是简单的ImageButton,因此可以通过没有ViewStub来获得性能并在代码中添加ImageButton。http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/view/ViewStub.java#ViewStub.inflate%28%29
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句